(57)【特許請求の範囲】
【請求項１】
集積回路間（Ｉ2Ｃ）バスにジョイント・テスト・アクション・グループ（ＪＴＡＧ）インタフェースを接続するための装置であって、
前記Ｉ2Ｃバスとの間で転送すべきデータをバッファする入出力バッファ論理回路と、
前記入出力バッファ論理回路および前記ＪＴＡＧインタフェースに接続され、前記入出力バッファ論理回路から受信したデータを前記ＪＴＡＧインタフェースに送信し、および前記ＪＴＡＧインタフェースから受信したデータを前記入出力バッファ論理回路へ送信するスレーブ・インタフェース論理回路と、
前記入出力バッファ論理回路および前記スレーブ・インタフェース論理回路に結合され、前記入出力バッファ論理回路に合わせて前記入出力バッファ論理回路と前記スレーブ・インタフェース論理回路の間のデータ交換のペースを調整し、前記スレーブ・インタフェース論理回路と前記ＪＴＡＧインタフェース間のデータ交換のためにデータの経路指定行うスレーブ・コントローラと、
前記入出力バッファ論理回路と前記Ｉ2Ｃバスとの間に結合され、かつ前記スレーブ・コントローラに接続される、エラー条件を処理するエラー処理論理回路とを含み、
前記エラー処理論理回路は、巡回冗長検査（ＣＲＣ）計算論理回路を含み、前記ＪＴＡＧインタフェースからエラーを示すアテンション信号を供給され、前記Ｉ2Ｃバスからの読取りに対する応答の際のＩ2Ｃバス・プロトコルの肯定応答信号をしないことにより前記エラーの通知を行い、
前記スレーブ・コントローラは、前記Ｉ2Ｃバスにより送信される開始バイト・アドレスに続く後のデータに、前記ＣＲＣ計算論理回路がＣＲＣ計算を実現するために使用可能または使用不能に構成されるための所定のコマンドがあることに応答して、前記ＣＲＣ計算論理回路を制御する、
装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般にデータ処理分野に関し、より具体的には集積回路間（Ｉ2Ｃ）バスなどのグローバル・シリアル・バスに製造テスト・インタフェースを接続するための方法および装置に関する。
【０００２】
【従来の技術】
Ｉ2Ｃバスは、１つまたは複数のマスタおよびスレーブにより複数の集積回路を相互接続するために通常使用する業界標準のシリアル双方向２線式バスである。Ｉ2Ｃバスは、２本のバス・ラインと、１本のシリアル・データ・ライン（ＳＤＡ）と、１本のシリアル・クロック・ライン（ＳＣＡ）とを含む。Ｉ2Ｃバスは、ｎチャネル金属酸化膜半導体（ＮＭＯＳ）、相補型金属酸化膜半導体（ＣＭＯＳ）、バイポーラなど、どのような集積回路（ＩＣ）作成プロセスもサポートするものである。シリアル・データ（ＳＤＡ）およびシリアル・クロック（ＳＬＣ）情報は、Ｉ2Ｃバスに接続された複数のデバイス間の２本のワイヤによって伝達される。
【０００３】
集積回路間（Ｉ2Ｃ）バスを含むグローバル・シリアル・バスにジョイント・テスト・アクション・グループ（ＪＴＡＧ）インタフェースのＩＥＥＥ１１４９．１仕様などの製造テスト・インタフェースを接続するための方法および効果的なメカニズムの必要性が存在する。ＶＰＤ情報を照会し、レジスタ・アクセスを可能にし、メモリおよびＩＯサブシステムを含み、シリアル・バスに接続された複数のデバイスでテストを実行するためにＩ2Ｃバスなどのグローバル・シリアル・バスを使用することは望ましいことである。
【０００４】
【発明が解決しようとする課題】
本発明の主な目的は、集積回路間（Ｉ2Ｃ）バスを含むグローバル・シリアル・バスに製造テスト・インタフェースを接続するための方法および装置を提供することにある。他の目的は、実質的に否定的な影響がなく、従来技術の配置の欠点の多くを克服するような方法および装置を提供することにある。
【０００５】
【課題を解決するための手段】
簡単に言えば、集積回路間（Ｉ2Ｃ）バスにジョイント・テスト・アクション・グループ（ＪＴＡＧ）インタフェースを接続するための方法および装置が提供される。入出力バッファ論理回路は、Ｉ2Ｃバスとの間で転送すべきデータをバッファする。入出力バッファ論理回路およびＪＴＡＧインタフェースに接続されたスレーブ・インタフェース論理回路は、入出力バッファ論理回路から受信したデータをＪＴＡＧインタフェースに送信し、およびＪＴＡＧインタフェースから受信したデータを入出力バッファ論理回路に送信する。入出力バッファ論理回路およびスレーブ・インタフェース論理回路に結合されたスレーブ・コントローラは、入出力バッファ論理回路に合わせてデータ交換のペースを調整し、スレーブ・インタフェース論理回路とＪＴＡＧインタフェース間のデータ交換のためにスレーブ・インタフェース論理回路に対してデータ・ステアリングおよびデータの経路指定行う。
【０００６】
本発明の特徴によれば、入出力バッファとＩ2Ｃバスとの間に結合され、エラー条件を処理するエラー処理論理回路がさらに含まれ、エラー処理のためにＩ2Ｃバス・プロトコルの肯定応答信号が利用される。
【０００７】
【発明の実施の形態】
次に図面を参照すると、図１は、参照文字１００によって一般的に示されている本発明による製造テスト・インタフェースおよびグローバル集積回路間（Ｉ2Ｃ）バス相互接続装置を示している。製造テスト・インタフェースおよびグローバル集積回路間（Ｉ2Ｃ）バス相互接続装置１００は、Ｉ2Ｃ物理インタフェース１０４を介してＩ2Ｃバス１０６に接続されたスレーブＩ2Ｃ状態マシンおよびトランスレータ１０２を含む。製造テスト・インタフェースおよびＩ2Ｃバス相互接続装置１００は単一集積回路チップによって定義することができる。Ｉ2Ｃ状態マシンおよびトランスレータ１０２は、内部ＪＴＡＧバス１１０を介してマルチプレクサ（ＭＵＸ）１０８に接続されている。ＭＵＸ１０８は外部ＪＴＡＧバス１１２に接続されている。制御入力１１３は、内部ＪＴＡＧバス１１０と外部ＪＴＡＧバス１１２との選択を行うためにＭＵＸ１０８に印加される。テスト・アクセス・ポートおよび境界走査アーキテクチャであるアクセス１１４または他のＪＴＡＧ実施態様は、ＭＵＸ１０８と、クロック制御、組込み自己試験（ＢＩＳＴ）およびその他の機能１１８、最高２33個のアーキテクチャ・レジスタ１２０、ＪＴＡＧ走査可能レジスタまたはテスト・データ・レジスタ（ＴＤＲ）１２２との間に接続される。
【０００８】
好ましい実施の形態の特徴によれば、製造テスト・インタフェースおよびＩ2Ｃバス相互接続装置１００は、固有のやり方でＩ2Ｃバス１０６とＪＴＡＧテスト・アクセス・ポート（ＴＡＰ）アクセス１１４との間のギャップを橋絡し、相互接続装置が固有のＩ2Ｃレジスタ転送プロトコルと完全なＪＴＡＧの機能性の両方をサポートできるようにする。製造テスト・インタフェースおよびＩ2Ｃバス相互接続装置１００は、業界標準のＩ2Ｃバス・プロトコルを固守するが、ＪＴＡＧの機能性を制限するものではない。製造テスト・インタフェースおよびＩ2Ｃバス相互接続装置１００は、相互接続配線を最小限にし、チップレベルのアドレス可能度を取り入れ、直接メモリ・マップ入出力（ＭＭＩＯ）読取りおよび書込みレジスタ・アドレス可能度を定義する。
【０００９】
好ましい実施の形態の特徴によれば、製造テスト・インタフェースおよびＩ2Ｃバス相互接続装置１００は、回路内データ経路、テスト、および研究室／現場デバッグ機能に製造テスト・ハードウェアを使用できるようにする。また、製造テスト・インタフェースおよびＩ2Ｃバス相互接続装置１００は、新しい走査コントローラ命令である走査通信即時読取りを取り入れ、Ｉ2Ｃバス１０６上のレジスタ読取り応答待ち時間を短縮する。製造テスト・インタフェースおよびＩ2Ｃバス相互接続装置１００は、システムレベルの製造テスト用の接続を簡略化し、削減する。システム・レベルの製造テストでは、テスト・インタフェース用として単一のＩ2Ｃ接続１０６を使用し、統合テストおよびバーンイン・テストを実行するために必要なテスト・フックアップ手順およびソフトウェアを簡略化することができる。
【００１０】
Ｉ2Ｃ状態マシンおよびトランスレータ１０２は、Ｉ2Ｃバス１０６により送信されたデータを固有のＪＴＡＧコマンドに変換する。Ｉ2Ｃ状態マシンおよびトランスレータ１０２は、Ｉ2Ｃバス１０６に接続されたチップ内でレジスタの読取り、書込み、走査を実行するためにアクセス１１４とのインタフェースをとるＴＡＰコントローラとして使用することができる。Ｉ2Ｃ状態マシンおよびトランスレータ１０２は、論理回路組込み自己試験（ＬＢＩＳＴ）またはアレイ組込み自己試験（ＡＢＩＳＴ）を開始し、ＪＴＡＧ  ＴＤＲ１２２を走査し、チップ・クロックならびにＪＴＡＧバス１１２を介して開始することができ、アクセス１１４によって実現される他の機能を制御することができる。製造テスト・インタフェースおよびＩ2Ｃバス相互接続装置１００は７ビットのスレーブ・アドレス指定方式を使用し、２7個のスレーブを直接アドレス指定することができる。このプロトコルは、特定のスレーブによって定義されるメモリ内の場所から始め、連続バイトをシリアルにアドレス指定することにより、アドレス指定されたスレーブが読取り／書込みに応答することを暗示する。製造テスト・インタフェースおよびＩ2Ｃバス相互接続装置１００は、直接アドレス指定を２23まで拡張し、８バイト整合のレジスタを操作する。さらに、レジスタ読取り／書込み以外にアクセス１１４によってサポートされる動作が用意されている。
【００１１】
シリアルＩ2Ｃバス１０６は、バスが休止している間、１のままになる、シリアル・データ（ＳＤＡ）用とシリアル・クロック（ＳＤＣ）用の２本のワイヤからなる。どのようなバス・マスタも、開始ビット（ＳＣＬ＝「１」である間、ＳＤＡが１−＞０になる）によってメッセージ転送を開始することができる。Ｉ2Ｃバス・プロトコルは、それぞれが１バイト幅で、後に肯定応答ビット（０＝良好な肯定応答）が続くパケットを操作する。メッセージが始まると、スレーブは肯定応答ビット・タイミング中にＳＤＡの駆動を支配し、マスタはそれ以外の時期にＳＣＬとＳＤＡの駆動を支配する。マスタ論理回路は必ずクロックを支配する。スレーブは、肯定応答ビットを除き、読取り時にＳＤＡを支配する。ＳＤＡがＳＣＬの立上り前にセットアップされ、立下り後に保持され、ＳＣＬがローである間に遷移するように、各ＳＤＡデータ／肯定応答ビットは、ＳＣＬがクロックする（０−＞１−＞０）間に１または０の安定状態を維持しなければならない。
【００１２】
パケット・ビットは、最上位ビット（ビット１）から先に伝送される。開始バイトのビット１：７は特定のスレーブ・チップをアドレス指定する。開始バイトのビット８は読取り／書込みビットである。書込みは、マスタのバイト送信およびスレーブの肯定応答とともに進行する。マスタが開始バイトを書き込むと読取りが始まるが、スレーブが開始バイトを肯定応答した後、データフローは反転する。次にスレーブはパケットを送信し、マスタは肯定応答する。マスタがＡｃｋ＝１になるまで、スレーブは送信し続ける。すべての伝送は停止ビット（ＳＤＡが０−＞１になる間、ＳＣＬ＝１）で終了する。バスは、停止ビット後、もう一度休止する。
【００１３】
ＩＥＥＥ１１４９．１では、境界走査アーキテクチャとやりとりするためのテスト・アクセス・ポートと呼ばれる５線インタフェースを定義している。アクセス１１４は、ジョイント・テスト・アクション・グループ（ＪＴＡＧ）インタフェースのＩＥＥＥ１１４９．１仕様の具体的な実施態様である。ＪＴＡＧテスト・アクセス・ポート（ＴＡＰ）の５本のワイヤは、ＪＴＡＧテスト・クロック入力（ＴＣＫ）と、ＪＴＡＧテスト・データ入力（ＴＤＩ）、ＪＴＡＧテスト・データ出力（ＴＤＯ）と、ＪＴＡＧテスト・モード選択入力（ＴＭＳ）と、ＪＴＡＧテスト論理リセット入力（ＴＲＳＴ）とを含む。テスト・クロック入力（ＴＣＫ）の立上りにより、ＴＭＳおよびＴＤＩはアクセス１１４によってサンプリングされる。
【００１４】
ＴＣＫの立上り時のＪＴＡＧテスト・モード選択入力（ＴＭＳ）の値により、アクセス１１４のＴＡＰコントローラにおいて状態遷移が行われる。テスト・データ入力（ＴＤＩ）は、アクセス１１４へのシリアル・データ入力である。テスト・データ出力（ＴＤＯ）は、アクセス１１４からのシリアル・データ出力である。ＪＴＡＧテスト論理リセット入力（ＴＲＳＴ）により、アクセス１１４を回復するためにテスト論理の非同期リセットが行われる（ＴＡＰ−＞ＴｅｓｔＬｏｇｉｃＲｓｔ）。ＳｈｉｆｔＩＲは、アクセス１１４内のＴＤＩとＴＤＯの間で命令がシリアルにシフトされる状態である。ＴＭＳが０に保持されている間、各ＴＣＫクロックにより、もう１つのビットがＴＤＩから命令レジスタ内にシフトインされ、ＩＲ状況がＴＤＯからシフトアウトされる。命令レジスタの内容により、アドレス指定される具体的なＴＤＲまたは実行すべき非レジスタ動作が決定される。ＳｈｉｆｔＤＲは、多くのデータ・レジスタ（ＴＤＲ）の１つがＴＤＩとＴＤＯの間にシリアルに接続される状態である。ＴＭＳが０に保持されている間、各ＴＣＫクロックにより、もう１つのビットがＴＤＩから命令レジスタ内にシフトインされ、（古い）データがＴＤＯからシフトアウトされる。
【００１５】
図２は、一般的に２００で示されている好ましい実施の形態によるＩ2Ｃ状態マシンおよびトランスレータ１０２の１次スレーブ・データおよび制御レジスタを示している。Ｉ2Ｃスレーブ論理回路２００は、データ、アドレス、レジスタ読取り／書込み（Ｒ／Ｗ）バッファのための入出力バッファ・レジスタ（ＩＯＢＵＦ）２０１と、関連の入出力バイト・カウント・レジスタ（ＩＯＣＮＴ）２０２とを含む。Ｉ2Ｃスレーブ論理回路２００は、物理インタフェース１０４とスレーブＪＴＡＧインタフェース２０４の間に結合されたエラー検出２０３を含む。また、Ｉ2Ｃスレーブ論理回路２００は、物理インタフェース１０４、入出力バイト・カウント・レジスタ（ＩＯＣＮＴ）２０２、スレーブＪＴＡＧインタフェース２０４に結合されたスレーブ・コントローラ２０６を含む。スレーブＪＴＡＧインタフェース２０４は、シリアル・シフト・レジスタ（ＳＳＲ）２０８と、そのシリアル・シフト・レジスタ（ＳＳＲ）２０８に関連するビット・カウント・レジスタ（ＢＣＲ）２１０とを含む。また、スレーブＪＴＡＧインタフェース２０４は、テスト・モード選択（ＴＭＳ）選択レジスタ（ＴＳＲ）２１２およびＴＭＳ端子選択レジスタ（ＴＴＳＲ）２１４と、テスト・クロック入力（ＴＣＫ）を供給するクロック・ジェネレータ（ＣＧ）２１６と、ＪＴＡＧテスト・モード選択入力（ＴＭＳ）を供給するＭＵＸ２１８とを含む。
【００１６】
物理インタフェース１０４は、Ｉ2Ｃプロトコルおよびタイミングを処理し、関連のハンドシェーク信号とともに１バイト幅のデータ・インタフェースを提供する。ＳＤＡは、Ｉ2Ｃによって定義される双方向シリアル・データ信号を意味する。また、ＳＣＬは、Ｉ2Ｃによって定義されるシリアル・クロック信号を意味する。物理インタフェース１０４の動作は、一般にＩ2Ｃ規格の従来の実施態様に応じて行われる。
【００１７】
ＩＯバッファ（ＩＯＢＵＦ）２０１は、Ｉ2Ｃ開始バイトによってスレーブ・チップとしてアドレス指定されるチップとの間で転送される連続バイトをバッファする。ＩＯＢＵＦ２０１内のデータは、物理インタフェース１０４との間で一度に１バイトずつパラレルに転送される。開始バイト全体はＩＯＢＵＦ２０１内に保持されるが、読取り／書込みビットはＩ2Ｃ状態マシン１０２によってさらに使用される。書込み動作中のデータ・フローは、Ｉ2Ｃバス１０６から内部ＪＴＡＧバス１１０のＴＤＩまたはＴＭＳに向かう。読取り動作中のデータ・フローは、内部ＪＴＡＧバス１１０のＴＤＯからＩ2Ｃバス１０６に向かう。シリアル・シフト・レジスタ（ＳＳＲ）２０８は、ＩＯＢＵＦ２０１との間で最高８バイトをパラレルに受信または供給することができる。次にこのデータは、ＩＥＥＥ１１４９．１プロトコルに従う内部ＪＴＡＧバス１１０との間でシリアルにシフトされる。
【００１８】
物理インタフェース１０４は、Ｉ2Ｃバス１０６を監視し、着信／発信バイトを受信する。そのバイトが開始バイトである場合、物理インタフェース１０４は７ビットのスレーブ・アドレスをチップ・アドレスと比較する。アドレスが一致しない場合、開始バイトと残りのメッセージは無視される。物理インタフェース１０４は、スレーブ・コントローラ２０６に対して信号をアサートし、１バイトが受信されたことを示す。
【００１９】
スレーブ・コントローラ２０６は、ＩＯカウント（ＩＯＣＮＴ）２０２を減分してＩＯＢＵＦ２０１との間のデータ交換のペースを調整し、データをＩＯＢＵＦ２０１内で適切に位置合わせして保持する。メッセージの終わりを受信または送信するかあるいはＩＯＢＵＦがオーバフローまたはアンダーフローすると、スレーブ・コントローラ２０６は、ＳＳＲ２０８とＩＯＢＵＦ２０１の間でデータを転送し、１つまたは複数のＪＴＡＧ基本動作を実行するようにスレーブＪＴＡＧインタフェース２０４をトリガする。本明細書および特許請求の範囲で使用する基本動作とは、内部スレーブＪＴＡＧインタフェース２０４との間でテスト・モード選択（ＴＭＳ）、制御、またはＴＤＩ／ＴＤＯ、命令またはデータ／状況を駆動するための１つまたは複数のテスト・クロック入力（ＴＣＫ）パルスからなるシーケンスを意味するものと定義されている。
【００２０】
図３は、ＩＯＢＵＦ２０１およびＩＯＣＮＴ２０２を実現するスレーブＩＯバッファ論理回路を示している。スレーブＩＯバッファ論理回路２０１は、ＩＯカウント・レジスタ（ＩＯＣＮＴＬ２）３０２と、アップ／ダウン・カウンタ３０４と、比較器（＞「１０１１」）３０６と、ＡＮＤゲート３０７と、ＩＯバッファ（ＩＯＢＵＦＬ２）３０８と、１対のマルチプレクサ（ＭＵＸ  ＩＯＡ、ＭＵＸ  ＩＯＢ）３１０、３１２とを含む。ＩＯＣＮＴ２０２は、ＩＯカウント・レジスタ（ＩＯＣＮＴＬ２）３０２およびアップ／ダウン・カウンタ３０４と同等のものである。
【００２１】
休止している場合、ＩＯカウント・レジスタ（ＩＯＣＮＴＬ２）３０２には、ＩＯバッファ２０１の最下位バイトを指し示す、ｂ「１０１１」というカウント・データ（ＣＮＴＤＡＴＡ）がパラレルロードされる。Ｉ2Ｃ状態マシン１０２は、ＩＯＣＮＴＬ２３０２に印加されたＬＯＡＤＣＮＴをアサートすることにより、ＣＮＴＤＡＴＡが有効であることを示す。Ｉ2Ｃバス１０６により複数バイトが転送されるにつれて、カウントは減分され、次の最上位バイトを連続的に指し示す。Ｉ2Ｃ物理インタフェース１０４はビットの転送（最上位ビットが先）を処理し、ＩＯＢＵＦ２０１は、Ｉ2Ｃ物理インタフェース１０４に複数バイトを提示し、それから複数バイトを受け入れる（最下位バイトが先）。
【００２２】
開始バイトがＩ2Ｃバス１０６上での読取り動作を示す場合、Ｉ2Ｃ状態マシン１０２は、Ｉ2Ｃバス１０６にデータを返す準備として、ＬＯＡＤＣＮＴを活動状態としてアサートし、ＣＮＴＤＡＴＡ＝ｂ「０１１１」としてアサートすることにより、ＩＯバッファ２０１のデータ部分までＩＯＣＮＴをジャンプする。
【００２３】
ＩＯＣＮＴレジスタＩＯＣＮＴＬ２３０２は、基本動作ステップ・カウンタ３０４としてレジスタ読取り／書込み動作中に再使用される。このモードでは、レジスタ読取り／書込みシーケンス内の次の基本コマンド・ステップが実行されるたびに、ステップ・カウンタ３０４に印加されるＣｏｕｎｔＵｐがＩ2Ｃ状態マシン１０２によって活動化される。ＩＯＣＮＴＬ２と、ＩＯＢＵＦ２０１のデータ部分のみが変更され、ＩＯＢＵＦアドレスおよび開始バイトはそれぞれの値を保持する。
【００２４】
１２バイトのＩＯバッファ・レジスタ（ＩＯＢＵＦＬ２）３０８は、一度に１バイトずつ開始バイトから始めて右から左にロードされる。Ｉ2Ｃ物理インタフェース１０４からのデータは、信号IS_BYTE_O上で到着し、Ｉ2Ｃ状態マシン１０２からの信号ＣＯＵＮＴＢＹＴＥによって有効であると示される。ＭＵＸ  ＩＯＡ３１０は、ＩＯＣＮＴによって指し示されるバイトを除くすべてのバイトにＩＯＢＵＦデータをフィードバックするが、これはIS_BYTE_O上のデータによって置き換えられる。
【００２５】
読取り情報は、信号IS_BYTE_I上で物理インタフェース１０４に提示される。ＭＵＸ  ＩＯＢ３１２は、IS_BYTE_I上で駆動すべきＩＯＣＮＴ番目のバイトを選択する。ＢＵＦＬＯＡＤ信号がＩ2Ｃ状態マシン１０２によって活動化されると、ＳＳＲ２０８からのデータがＩＯＢＵＦ２０１のデータ部分にパラレルにロードされる。これは、レジスタ読取り基本シーケンスの終わりまたはＩ2Ｃコマンドの要求で１ステップのＪＴＡＧ基本コマンドが実行された後に行われる。
【００２６】
データ、コマンド／アドレス、ｒ／ｗビットは、ＩＯＢＵＦＬ２（０：９５）信号によりＩ2Ｃ状態マシン１０２およびＳＳＲ２０８に提示される。ＡＮＤゲート３０７によって生成されるＯＶＥＲＲＵＮ信号は、ＩＯＢＵＦの満杯／空条件を示す。
【００２７】
以下の表１は、ｘが無指定を示す場合のマルチプレクサ（ＭＵＸ  ＩＯＡ、ＭＵＸ  ＩＯＢ）３１０、３１２に関するＭＵＸ定義を示すものである。
【００２８】
【表１】
0004056191.tif 000002
【００２９】
ＭＵＸ  ＩＯＢ３１２はＩＯｃｎｔＬ２の最上位ビットに関して無指定であり、スレーブ論理回路はデータのみを返し、アドレス情報は一切返さない。
【００３０】
図４は、ＪＴＡＧインタフェース２０４を実現するスレーブ・テスト・アクセス・ポート（ＴＡＰ）インタフェース論理回路を示している。スレーブＴＡＰインタフェース論理回路２０４は、ＴＡＰクロック状態マシン（ＴＡＰＣＭＳＬ２）４０２と、複数のマルチプレクサ（ＭＵＸ  Ａ、ＭＵＸ  Ｂ、ＭＵＸ  Ｃ、ＭＵＸ  Ｄ、ＭＵＸ  Ｅ）４０４、４０６、４０８、４１０、４１２と、複数のレジスタ（ＳＳＲＬ２（０：６３）、ＴＴＳＲＬ２、ＴＳＲＬ２、ＢＣＲＬ２（０：５））４１４、４１６、４１８、４２０と、ダウン・カウンタ４２１と、比較器（＝「１１１１１１」）４２２と、複数のラッチ４１３、４２４、４２６と、１対のＡＮＤゲート４２８および４３０とを含む。
【００３１】
ロード・コマンド（ＬＯＡＤＣＭＤ）信号が活動化されると、テスト・アクセス・ポート・コマンド（ＴＡＰＣＭＤ）は、内部ＪＴＡＧバス１１０上での活動を開始するために有効であると見なされる。ＴＡＰＣＭＤ信号上の情報は以下に記載するようにコマンド・レジスタ内にロードされ、１クロック（ＯＮＥＣＬＫ２）ラッチ４２６は１つまたは複数のＴＣＫパルスでリリースするように１に設定される。以下の表２、表３、表４に示すＴＡＰクロック状態マシン（ＴＡＰＣＳＭ）４０２、ＴＡＰ基本コマンド・インタフェース、ＭＵＸ  Ｄ４１０に関する定義を参照されたい。ＭＵＸ  Ｂ４０６は、フィードバックを行い、ＬＯＡＤＣＭＤが活動状態ではない間、コマンド・レジスタの現在の値を保持する。同様にＭＵＸ  Ａ４０４はＳＳＲ（データ）値を保持する。
【００３２】
ＴＡＰクロック状態マシン（ＴＡＰＣＭＳＬ２）４０２は、ＯＮＥＣＬＫＬ２によって活動化されるまでアイドル状態のままになる。状態マシン４０２は、ＩＤＬＥに戻る前に、状態ＴＣＫＦ１、ＴＣＫＲ０、ＴＣＫＲ１間を順次移行する。マシン４０２は、ＯＮＥＣＬＫＬ２＝１である限り、これらの状態間をループし続ける。ＴＣＫはＴＣＫ立上り（ＴＣＫＲ０、ＴＣＫＲ１）状態のときに１に駆動され、ベース・スレーブ・クロック周波数を係数４で効果的に分割し、約５０％のデューティ・サイクルを提供する。ＢＣＲは減分され、ＳＳＲデータはＴＣＫＲ１状態のときに１ビット右にシフトされる。ＴＣＫの立上りでＴＤＯをサンプリングするというＪＴＡＧの要件は、ＴＣＫＲ０状態のときにＴＤＯからＴＤＯＬ２ラッチ４１３にロードすることによって達成される。以下の表４に示すＭＵＸ  Ｅ４１２の定義を参照されたい。
【００３３】
【表２】
0004056191.tif 000003
【００３４】
状態遷移中のＴＣＫ上のグリッチを防止するために状態マシン４０２の状態はグレーコード化される。状態テーブルに特に指定がない限り、出力は０になる。
【００３５】
ＭＵＸ  Ａ４０４、ＭＵＸ  Ｂ４０６、ＢＣＲＬ２  ４２０に印加されるＴＡＰコマンド（ＴＡＰＣＭＤ）信号は９バイト幅である。第１のバイトはＪＴＡＧ走査論理回路２０４によって実行される基本コマンドである。ＴＭＳ選択レジスタ（ＴＳＲＬ２：ＴＡＰＣＭＤビット０）４１８は、ＭＵＸ  Ｃ４０８がＴＭＳにシフトアウトすべきＳＳＲＬ２（０：６３）４１４からのＳＳＲデータを選択するかまたは一定値を選択するかを決定する。０は、ＳＳＲＬ２４１４内のデータがＴＭＳ制御情報のストリームであることを示す。１は、最初のＮ−１個のＴＣＫクロック・パルスのＴＭＳ上で駆動される静的０値を選択するようＭＵＸ  Ｃに指示するものであり、次にＴＴＳＲＬ２  ４１６の値はＮ番目の（端子）ＴＣＫパルス中にＴＭＳ上で駆動される。
【００３６】
端子ＴＭＳ選択レジスタ（ＴＴＳＲＬ２：ＴＡＰＣＭＤビット１）４１６は、Ｎ番目の（端子）ＴＣＫパルス中にＴＭＳ上で値を提供する。ＴＴＳＲＬ２  ４１６は、ＳＳＲの６４ビット幅が走査を完了するには不十分な場合の長時間走査動作用のものである。ＴＴＳＲＬ２＝０は基本動作を橋絡し、他の基本コマンドで走査を続行できるようにする。ＴＴＳＲＬ２＝１は、アクセス１１４内のＪＴＡＧ  ＴＡＰ状態をシフトＤＲまたはシフトＩＲ状態から移行させることにより、その動作を終了する。テスト論理リセット（ＴＲＳＴ）は、本来は基本コマンドに使用されない組合せでＴＡＰＣＭＤビット０：１をゲートすることによって形成される。ＡＮＤゲート４２８のこの出力はラッチ４２４によってラッチされ、テスト論理リセットＴＲＳＴ信号をデグリッチする。ビット・カウント・レジスタ４２０（ＢＣＲＬ２：ＴＡＰＣＭＤビット２：７）は、ＴＭＳまたはＴＤＩ上の情報シーケンスとともに送信するＴＣＫパルスの数を定義する。ｂ「１１１１１０」というＢＣＲ値は、６４個のＴＣＫパルスを送信することを示す（ＳＳＲレジスタ４１４の全体はＴＤＩまたはＴＭＳから右にシフトされ、ＴＤＯを左側のＳＳＲ内にシフトインする）。ＢＣＲ＝ｂ「１１１１１１」は端子カウントであり、１つのＴＣＫパルスがリリースされることを示す。
【００３７】
ＴＡＰＣＭＤの第１のバイトの定義を以下の表３に要約して示す。
【００３８】
【表３】
0004056191.tif 000004
【００３９】
ＴＡＰＣＭＤ信号の残りのビットは、ＴＤＩまたはＴＭＳからのシフトアウトの準備としてＳＳＲ２０８内にロードすべきデータを表している。
【００４０】
ＢＣＲがｂ「１１１１１１」に達すると、そのコマンドは実行される。ＯＮＥＣＬＫＬ２ラッチ４２６は０に戻り、ＴＡＰＣＭＤ状態マシン４０２はアイドル状態のままになる。内部ＪＴＡＧバス１１０は非活動状態になる。ＡＮＤゲート４３０のＣＭＤＤＯＮＥ信号出力は、新しい基本コマンドを開始してもよいというインジケータとしてＩ2Ｃスレーブ状態マシン１０２にフィードバックされる。
【００４１】
マルチプレクサ（ＭＵＸ  Ａ、ＭＵＸ  Ｂ、ＭＵＸ  Ｃ、ＭＵＸ  Ｄ、ＭＵＸＥ）４０４、４０６、４０８、４１０、４１２に関するＭＵＸ定義を示す以下の表４では、ｘは無指定を示し、／＝は等しくないことを意味する。
【００４２】
【表４】
0004056191.tif 000005
【００４３】
図５は、スレーブ・コントローラ２０６を実現するスレーブ・コントローラ論理回路を示している。スレーブ・コントローラ２０６は、Ｉ2Ｃスレーブ状態マシン論理回路（Ｉ２ＣＳＳＭＬ２（０：３））５０２と、比較器（＝）５０４と、ＴＡＰ  ＣＭＤ経路指定用のＭＵＸ  ＳＭＡ５０６、データ経路指定用のＭＵＸ  ＳＭＢ５０８、制御用のＭＵＸ  ＳＭＤ５１０という複数のマルチプレクサとを含む。また、スレーブ・コントローラ論理回路２０６は、レジスタ読取り／書込み（ＲＥＧＲＷ）バス同期論理回路５１２を含む。ＲＥＧＲＷバス同期論理回路５１２は、１対のＡＮＤゲート５１４、５１６と、ＳＣアイドル・ラッチ（ＳＣＩＤＬＥＬ２）５２０と、ＮＯＴゲート５２２と、マルチプレクサＭＵＸ  ＳＭＢ５２４とを含む。スレーブ・コントローラ論理回路２０６は複数の基本機能を以下のように実行する。Ｉ2Ｃスレーブ状態マシン論理回路（Ｉ２ＣＳＳＭＬ２（０：３））５０２は、物理インタフェース１０６とＩＯバッファ論理回路３００の間のデータ交換のペースを調整し、ＩＯバッファ論理回路３００とＪＴＡＧ走査論理回路２０４の間のデータ交換のペースを調整する。ＴＡＰ  ＣＭＤ経路指定用のＭＵＸ  ＳＭＡ５０６は、レジスタ読取り／書込み動作用の順序づけた一連のコマンドを提供する。ＲＥＧＲＷバス同期論理回路５１２は、ＪＴＡＧ走査論理回路２０４とアクセス１１４の間のデータ交換のペースを調整する。データ経路指定用のＭＵＸ  ＳＭＢ５０８は、データ経路指定用のＩ2Ｃ帯域幅要件を最小限にする。
【００４４】
表５、表６、表７、表８は、スレーブ・コントローラ２０６のＭＵＸ  ＳＭＡ５０６、ＭＵＸ  ＳＭＢ５２４、ＭＵＸ  ＳＭＣ５０８、ＭＵＸ  ＳＭＤ５１０に関するマルチプレクサ定義を示している。
【００４５】
ＩＯＢＵＦ２０１およびＳＳＲ２０８データは、必ずバイトごとに転送するわけではない。Ｉ2Ｃが基本コマンド・シーケンスを使用してＩＯＢＵＦ／ＳＳＲレジスタの幅の偶数倍より短いかまたは等しくないＴＤＲをアドレス指定する場合、すべての重要データを受信したときにオーバフローを検出できるように、Ｉ2Ｃバス１０６からのデータはＩＯＢＵＦ２０１内で左揃えされる。ＩＯＢＵＦ２０１データは、ＳＳＲ２０８にロードされると右揃えされる。ターゲットになるＴＤＲから走査されたデータは、ＳＳＲ２０８内で左揃えされ、同じく適切な時期にＩ2Ｃに返されたデータのアンダーフローを検出できるように、ＩＯＢＵＦ２０１に転送されたときに左揃えされたままになる。
【００４６】
ＲＥＧＲＷバス同期論理回路５１２は、レジスタ読取り／書込みバス同期のためにＳＣｉｄｌｅ信号を使用する。ＣＨＫＡＤＲ状態の場合、ＳＣｉｄｌｅＬ２ラッチ５２０は１に設定される（アクセス１１４からのＳＣＩＤＬＥ信号は活動状態であると想定する）。レジスタＲ／Ｗ動作が開始されると、ＳＣＩＤＬＥはローになり、ＳｃｉｄｌｅＬ２５２０をリセットする。レジスタ読取り動作が完了すると、ＳＣｉｄｌｅＬ２ではなくＳＣＩＤＬＥが、レジスタ読取りデータがアクセス１１４内で使用可能であることを示す。この論理回路を使用してレジスタ読取りバスと同期をとるために、第３のステップの完了後にＴＡＢＬＥ内のレジスタ読取りシーケンスが休止される。
【００４７】
図６は、ＩＯＢＵＦ２０１と物理インタフェース１０４の間のデータ転送のペースを調整するために必要な信号を示している。信号定義については、状態マシンの説明を参照すると最もよく理解できるだろう。
【００４８】
図７は、ＩＯバッファ２０１とＪＴＡＧ走査論理回路２０４とのデータ・ペーシングを示している。図７は、ＩＯＢＵＦ２０１とＪＴＡＧ走査論理回路２０４の間のデータ転送のペースを調整するために使用する信号を示している。信号定義については、状態マシンの説明を参照すると最もよく理解できるだろう。
【００４９】
【表５】
0004056191.tif 000006
【表６】
0004056191.tif 000007
【００５０】
【表７】
0004056191.tif 000008
【００５１】
【表８】
0004056191.tif 000009
【００５２】
【表９】
0004056191.tif 000010
【００５３】
次に図８を参照すると、エラー検出２０３を実現するエラー処理論理回路が示されている。エラー処理論理回路２０３は、Ｉ2Ｃバス１０６との間で転送されたデータのＣＲＣ検査を行うための巡回冗長検査（ＣＲＣ）論理回路８０２を含む。また、エラー処理論理回路２０３は、CRC_Good、アテンション、ＩＯＣＮＴＬ２、read_or_write、比較器８０８からの基本コマンドという入力を受け取るＡＣＫ  ＴＹＰＥ  ＭＵＸ８０４を含む。
【００５４】
Ｉ2Ｃ状態マシン１０２とエラー処理論理回路２０３は、ＪＴＡＧ  ＴＡＰコントローラ・アクセス１１４からアテンション入力を受け取る。アクセス１１４からのこのアテンション入力は、レジスタ読取り／書込みバス・エラーの結果としてまたはいくつかの他のエラー・シナリオにより活動化される場合がある。read_or_writeは、物理インタフェース１０４からバッファされたＩ2Ｃ状態マシンからの入力である。ＩＯＢＵＦＬ２は、ＩＯバッファ論理回路２０１から比較器８０８への入力である。比較器８０８に印加されるＴａｐＣｍｄＡｄｒは、内部定数としてまたはチップＩＯピンを介して構成可能な定数である。ＩＯＣＮＴＬ２は、ＩＯバッファ論理回路２０１からＭＵＸ８０４への入力である。CRC_Goodは、ＣＲＣバイトが正しく転送されたことを示す、ＣＲＣ論理回路８０２からの信号である。is_slave_ack_typeは、エラー処理論理回路８００のＭＵＸ８０４から物理インタフェース１０４への出力である。
【００５５】
Ｉ2Ｃスレーブは肯定応答パルスによってエラーを処理する。Ｉ2Ｃでは、Ａｃｋまたは９番目のクロック・サイクルならびにスレーブ・アドレスの９番目のビット上のデータのすべてのバイトについて肯定応答が必要である。スレーブがエラーを検出すると、スレーブは、読取りシーケンスを実行しようと試みるときにもはやそのアドレスおよびデータを肯定応答しなくなる。このようにして、ソフトウェアは、エラー条件が存在すると判定し、Ｉ2Ｃバス１０６を使用して、そのエラー条件からの回復を行えるように何がそのエラーを引き起こしたかを判定することができる。
【００５６】
読取りまたは書込みシーケンス時にスレーブが肯定応答しなくなる状況はいくつか考えられる。たとえば、ＣＲＣ検査が使用可能になっている場合、ソフトウェアがデータを上書きするのを防止するために、スレーブは１３番目のバイトを肯定応答しなくなる。このような１３バイトとしては、スレーブ・アドレスと、３バイトのレジスタ読取りアドレスと、８つのデータ・バイトと、１つのＣＲＣバイトとを含む。ＣＲＣが正しく計算され、伝送された場合のみ、書込みが行われる。ＣＲＣ検査を行わない場合、８バイトを上回る量のデータをソフトウェアが書き込むと、データは上書きされる。アクセス１１４内でアテンション信号が立ち上がり、そのアテンションが内部でブロックされていない場合、状態マシンは、レジスタ読取り直接シーケンスを実行しようと試みるときにＮｏ−Ａｃｋを引き起こすことになる。書込みシーケンスを実行し、送信された３バイト・アドレスが基本アドレスではなかった場合、スレーブは、Ｉ2Ｃバス１０６により送信されるデータ・バイトを肯定応答しなくなる。ＣＲＣ検査が使用可能になっており、Ｉ2Ｃバス１０６上で送信されたＣＲＣが正しくなかった場合、スレーブは次の読取り試行時に肯定応答しなくなる。
【００５７】
【表１０】
0004056191.tif 000011
【００５８】
次に図９、図１０、図１１、図１２、図１３、図１４、図１５を参照すると、図９には状態マシン１０２の順次状態が示されている。図１０および図１１は、Ｉ2Ｃスレーブ状態マシン１０２の基本書込み制御フローおよび基本読取り制御フローをそれぞれ示している。図１２および図１３は、Ｉ2Ｃスレーブ状態マシン１０２のレジスタ書込み制御フローおよびレジスタ読取り制御フローをそれぞれ示している。図１４および図１５は、Ｉ2Ｃスレーブ状態マシン１０２の制御書込み制御フローおよび制御読取り制御フローをそれぞれ示している。
【００５９】
Ｉ2Ｃスレーブ状態マシン１０２のＩＤＬＥ状態９０２ではＩ2Ｃ活動が一切行われない。ＩＯｃｎｔＬ２にはｂ「１０１１」がロードされ、開始バイトの受信準備としてＩＯＢＵＦＬ２のＬＳＢｙｔｅを指し示す。複数の状態としてはＡＭＡＴＣＨ状態９０４と、ＷＢＹＴＥ状態９０６と、ＣＨＫＯＶＲＦＬＷ状態９０８と、ＷＲＴＡＣＫ状態９１０とを含むＩ2Ｃ書込み状態がある。書込みＩ2Ｃ状態では、Ｉ2Ｃマスタがスレーブに複数バイトを書き込んでいるときに、第１のバイトは必ず、スレーブをアドレス指定する開始バイトになる。開始バイトの８番目のビットは読取り／書込みビットである。次の３バイトは、レジスタ・アドレス、基本ＴＡＰコマンド、またはスレーブ制御コマンドのいずれかとして解釈される。残りのバイトはデータである。
【００６０】
ＡＭＡＴＣＨ状態９０４（アドレス一致）では、物理インタフェース１０４は開始ビットを認識済みであり、（次の）メッセージ・バイトをアセンブルしている。ＡＭＡＴＣＨ状態９０４は、反復開始であるかまたは開始バイト・アドレスが不一致であるときにＩＤＬＥ状態９０２に戻り、スレーブをＩＤＬＥに送り返す。最初の４バイト（開始＋アドレス・バイト）を受信する前にメッセージが終了した場合、スレーブはＩＤＬＥに戻る。ＣＲＣが使用可能になり、ＣＲＣエラーが検出された場合、ＡＭＡＴＣＨ状態９０４はＩＤＬＥ状態９０２に戻る。ＡＭＡＴＣＨ状態９０４は、物理インタフェース１０４が８ビット以上を受信したときに、ＷＢＹＴＥ状態９０６に移行する。物理インタフェース１０４のある特定の実施態様は、開始バイト中にＩｓＳｔａｒｔＤｅｔｅｃｔｅｄの前にＩｓ８ｔｉｍｅｓを示し、それを紛失しないようにＩｓ８ｔｉｍｅｓをラッチすることを要求する（Ｉｓ８ｔｉｍｅｓＬ２）。ＡＭＡＴＣＨ状態９０４は、１バイト以上のデータを受信したあとで物理インタフェース１０４が停止ビットを検出したときに、ＣＨＫＡＤＲ状態９１２に移行する。
【００６１】
ＷＢＹＴＥ状態９０６（バイト書込み）では、物理インタフェースからのIs_Byte_OがＩＯＢＵＦＬ２に書き込まれ（ＩＯｃｎｔＬ２thｂｙｔｅ）、次にＩＯｃｎｔＬ２が減分される。ＷＢＹＴＥ状態９０６は、これがＩ2Ｃ書込み動作である場合に、ＣＨＫＯＶＲＦＬＷ状態９０８に移行する。データフローはマスタ／イニシエータからスレーブへと継続する。ＷＢＹＴＥ状態９０６は、これがＩ2Ｃ読取り動作であるときに、ＣＨＫＡＤＲ状態９１２に移行する。データフローは開始バイト後に反転する。次にマスタはスレーブからデータを受信することになる。
【００６２】
ＣＨＫＯＶＲＦＬＷ状態９０８（ＩＯバッファ内のオーバ（アンダー）フローの検査）では、いかなるアクションも行われない。ＣＨＫＯＶＲＦＬＷ状態９０８は、これが書込み動作であり、ＩＯＣｎｔＬ２がｂ「００００」からｂ「１１１１」に折り返しておらず、ＩＯＢＵＦＬ２内に追加バイト用のスペースがあるときに、ＷＲＴＡＣＫ状態９１０に移行する。ＣＨＫＯＶＲＦＬＷ状態９０８は、レジスタ読取りまたは基本コマンドがすでにＩＯＢＵＦＬ２を充填し、Ｉ2Ｃ読取り状態のうちのＲＢＹＴＥ状態９３２からＣＨＫＯＶＲＦＬＷ状態９０８に入った場合に、ＷＡＩＴＲＥＡＤ状態９１０に移行する。１つまたはそれ以上のバイトはすでに読み取られているが、ＩＯＢＵＦＬ２はまだアンダーフローしていない。ＣＨＫＡＤＲに移行し、ＩＯＢＵＦＬ２は満杯／空であり、レジスタ書込み／読取りまたは基本動作をトリガする。
【００６３】
ＷＲＴＡＣＫ状態９１０（スレーブに書き込まれたばかりのＩ2Ｃバイトの肯定応答）は、最初の４バイト分のメッセージ（開始＋３つのアドレス・バイト）内である場合に良好肯定応答アクションを提供する。ＷＲＴＡＣＫ状態９１０は、レジスタ読取りアドレスおよびアテンションがアクセス１１４から活動状態になっている場合に肯定応答失敗を提供する。ＩｓＤｏＲｅａｄ（Ｉ2Ｃマスタによって書き込まれたバイトのＩＯＢＵＦ読取り）は物理インタフェース１０４に対して活動化され、ＩＯＢＵＦ用に１バイトが用意されていることを示す。ＮｅｅｄＡｃｋＬ２はリセットされる。これが４番目のバイト（ＩＯＢＵＦに書き込まれたばかりの最後のアドレス・バイト：  この時点でＩＯｃｎｔＬ２＝７）であり、アドレスが基本コマンドを示す場合、データ・バッファ内でＩＯｃｎｔＬ２をジャンプするために基本のＢＣＲフィールドからデコードされるＶａｌｉｄＢｙｔｅｓを調べる。たとえば、ＢＣＲ＝ｂ「００００００」である場合、２ビットだけがアクセス１１４に伝送されるので、１バイト分のデータだけが必要になる。第１のバイトのデータの直後にオーバフローが発生するように、ＩＯｃｎｔＬ２はｂ「００００」まで進む。それ以外の場合は、Ｉ2Ｃは、さらに７バイト分の重要ではないデータを伝送して時間を浪費しなければならないだろう。
【００６４】
ＷＲＴＡＣＫ状態９１０はＮｅｅｄＡｃｋＬ２によってＡＭＡＴＣＨ状態９０４に移行する。物理インタフェース１０４は、ａｃｋが送信／受信された後の１サイクルの間、ＩｓＡｃｋＳｅｎｔを活動化する。Ａｃｋが送信されるまでスレーブ状態マシンが待機していた場合、ＮｅｅｄＡｃｋＬ２は記憶している。
【００６５】
ＣＨＫＡＤＲ状態９１２（アドレス検査）では、ＩＯＢＵＦＬ２アドレス・フィールドを調べて、これがＩ2Ｃスレーブ・コマンド・フォーマットを使用するレジスタ読取り／書込み、基本、または制御コマンドのいずれであるかを判定する。基本信号は、基本動作と制御動作の両方について活動状態になる。ＳＣｉｄｌｅＬ２は、これがレジスタ読取り／書込み動作である場合に設定される。ＲＥＧＲＷバス同期論理回路５１２はレジスタ読取り／書込み（アーキテクチャ・レジスタｒ／ｗ）バスを監視して、ＪＴＡＧコマンド・ステップがレジスタ読取り／書込み動作をオーバランしないようにする。ＩＯｃｎｔＬ２レジスタは、これがレジスタ読取り／書込み動作である場合にｂ「０００１」に設定される。この場合、ＩＯＣＮＴは、レジスタ読取り／書込み動作を遂行するために基本ＴＡＰコマンドの定義済みシーケンスを進行する。
【００６６】
ＣＨＫＡＤＲ状態９１２はＩＤＬＥ状態９０２に移行し、アテンションが活動状態であるかまたはＣＲＣが使用可能になっていて比較が一致しない場合、レジスタ読取りは肯定応答に失敗することになる。ＣＨＫＡＤＲ状態９１２は、ＩＯＢＵＦＬ２アドレスが基本ベース・アドレスと一致しないときに、レジスタ読取り／書込みコマンド状態、ＲＥＧＲＷＧＯ状態９１８のいずれか一方に移行する。また、ＣＨＫＡＤＲ状態９１２は、ＩＯＢＵＦＬ２アドレスが基本ｒ／ｗコマンド・アドレスと一致したときに、基本コマンド状態、ＬＤＴＡＰＣＭＤ状態９１４のいずれか一方に移行する。ＣＨＫＡＤＲ状態９１２は、ＩＯＢＵＦＬ２アドレスが制御コマンド・アドレスの１つと一致したときに、ＣＨＫＳＴＯＰ状態９２４に移行する。これらのコマンドはＪＴＡＧバス活動がなくても遂行される。
【００６７】
基本コマンド状態としては、ＬＤＴＡＰＣＭＤ状態９１４と、ＷＡＩＴＴＡＰＤＯＮＥ状態９１６とを含む。ＩＯＢＵＦＬ２アドレス・バイトは、オンチップＪＴＡＧインタフェースに直接通信するために予約されたアドレスと一致する。ＴＭＳまたはＴＤＩ／ＴＤＯ活動のいずれか一方が行われるが、両方が行われるわけではない。ＩＯＢＵＦＬ２のバイト１０にロードされた基本ＴＡＰコマンドに応じて、ＳＳＲＬ２レジスタの幅までの任意の数のビットが転送される。
【００６８】
ＬＤＴＡＰＣＭＤ状態９１４（ＴＡＰコマンドのロード）では、ＴＡＰコマンドがＩＯＢＵＦＬ２（バイト１０）からＪＴＡＧインタフェース２０４にロードされる。ＬｏａｄＣｍｄ信号とＶａｌｉｄＢｙｔｅｓ信号は一緒に機能して、ＳＳＲＬ２の右端バイト内に重要なバイト整列データをロードする。これは、データ・フィールド内で右揃えされたデータをＩ2Ｃが送信しなければならないことを暗示する。たとえば、ＢＣＲ−ｂ「０００１１１」である場合、９ビットがアクセス１１４に伝送され、Ｉ2Ｃ物理インタフェース１０４からのデータのＬＳＢｙｔｅは８つの有効ビットを含まなければならず、Ｉ2Ｃ物理インタフェース１０４からの次のバイトは１つの有効ビットを含み、そのビットはそのバイト内の右端のビットとして送信しなければならない。
【００６９】
ＷＡＩＴＴＡＰＤＯＮＥ状態９１６（ＴＡＰ完了の待機）では、いかなるアクションも行われない。ＪＴＡＧインタフェース２０４は活発に基本ＴＡＰコマンドを実行している。ＷＡＩＴＴＡＰＤＯＮＥ状態９１６は、ＪＴＡＧインタフェース２０４からのＣｍｄＤｏｎｅによってＣＨＫＳＴＯＰ状態９２４に移行し、ハードウェアが終了した時期を通知する。
【００７０】
ＣＨＫＳＴＯＰ状態９２４（Ｉ2Ｃ停止条件の検査）では、レジスタ読取り／書込み動作は必ず８バイトを転送するが、基本コマンドはデータの一部分のみがＳＳＲＬ２で有効になって終了する可能性がある。ＩＯｃｎｔＬ２  ３０２には、いくつの左揃えバイトが有効データを含むかを示すＶａｌｉｄＢｙｔｅｓがロードされる。たとえば、ＢＣＲ２１０はｂ「０００１１１」から開始した（９ビット転送）。ＳＳＲＬ２は初めに右揃えした９ビットを保持したので、バイト６、７のみが有効であった。基本コマンドが完了した後、ＴＤＯデータはＳＳＲＬ２  ４１４内に左揃えで取り込まれたので、バイト０、１のみが有効である。
【００７１】
ＣＨＫＳＴＯＰ状態９２４は、Ｉ2Ｃ停止ビットが検出されたときにＩＤＬＥ状態９０２に移行し、追加のアクションは一切不要である。これは、レジスタ読取り／書込み動作が長いタイムアウトで遅延しない限り、ありそうもない経路である。また、ＣＨＫＳＴＯＰ状態９２４は、Ｉ2Ｃ物理インタフェース１０４に返す必要がある読取りデータがＳＳＲ２０８内に存在するときに、ＬＯＡＤＲＥＳＵＬＴＳ状態９２６に移行する。さらに、ＣＨＫＳＴＯＰ状態９２４は、Ｉ2Ｃ物理インタフェース１０４によって要求された書込みが完了し、スレーブが転送された最新バイトを肯定応答（ＡＣＫ）するのをＩ2Ｃ物理インタフェース１０４が期待しているときに、ＷＲＴＡＣＫ状態９１０に移行する。
【００７２】
Ｉ2Ｃ読取り状態としては、ＬＯＡＤＲＥＳＵＬＴＳ状態９２６と、ＲＥＡＤＡＣＫ状態９２８と、ＷＡＩＴＲＥＡＤ状態９３０と、ＲＢＹＴＥ状態９３２とを含む。
【００７３】
Ｉ2Ｃ読取り状態では、Ｉ2Ｃ物理インタフェース１０４がスレーブから複数バイトを読み取っている。レジスタ読取り、基本、またはＬＯＡＤＲＥＳＵＬＴＳ状態９２６およびＲＥＡＤＡＣＫ状態９２８が続く制御読取りは、ＩＯバッファ２０１がデータを使い果たすたびに実行される。マスタは、スレーブから戻るすべてのタイミングを支配する。マスタは、１つまたは複数のバイトを読み取り、Ａｃｋ＝１であるときにＩ2Ｃ転送を終了することができる。ＷＡＩＴＲＥＡＤ状態９３０と、ＲＢＹＴＥ状態９３２と、ＣＨＫＯＶＲＦＬＷ状態９０８によって形成されるループは、転送されるすべてのバイトごとに１回実行される。
【００７４】
ＬＯＡＤＲＥＳＵＬＴＳ状態９２６（ＳＳＲからＩＯＢＵＦへのデータのロード）では、実行されたばかりのＪＴＡＧ動作が基本である場合、データは依然としてＳＳＲＬ２  ４１４内にあり、ＩＯＢＵＦＬ２  ３０８にコピーしなければならない。それ以外の場合、これは後述するレジスタ読取り／書込み動作のステップ６ですでに実行されており、ＳＳＲは不要情報である。
【００７５】
ＲＥＡＤＡＣＫ状態９２８（スレーブから読み取ったばかりのＩ2Ｃバイトの肯定応答の待機）では、物理インタフェース１０４は、Ａｃｋビットの待機を含む、読取りタイミングを管理する。図６も参照すると、物理インタフェース１０４がＡｃｋを受信した後、物理インタフェース１０４は、ＮｅｅｄＡｃｋＬ２ラッチを設定するＩＡｃｋＲｅａｄｙを活動化することにより、それがＩＯＢＵＦ２０１からさらに１バイトを必要とすることを示す。ＩｓＷｒｔＲｅａｄｙは、物理インタフェース１０４に戻って活動化され、次のバイトがＩＯＢＵＦ２０１からIs_Byte_Iに書き込む用意ができていることを示す。同時に、ＮｅｅｄＡｃｋＬ２はリセットされる。
【００７６】
ＲＥＡＤＡＣＫ状態９２８は、物理インタフェース１０４が活発に他のデータ・バイトをマスタに返送しているか、またはＡｃｋ＝１の場合に停止ビットを待っており、それが読取りの終了時にＩ2Ｃプロトコルによって許される唯一可能な条件である場合に、ＷＡＩＴＲＥＡＤ状態９３０に移行する。
【００７７】
ＷＡＩＴＲＥＡＤ状態９３０（Ｉ2Ｃによるスレーブからのバイト読取りの待機）では、いかなるアクションも行われない。物理インタフェース１０４は、活発に他のデータ・バイトをマスタに返送しているか、またはＡｃｋ＝１の場合に停止ビットを待っている。
【００７８】
ＷＡＩＴＲＥＡＤ状態９３０は、マスタによって読み取られた最初のデータ・バイトが「１」で肯定応答され、物理インタフェース１０４によって停止ビットが検出されると直ちにＩＤＬＥへの退出が行われるときに、ＩＤＬＥ状態９０２に移行する。それ以外の場合、ＮｅｅｄＡｃｋＬ２は、物理インタフェース１０４がマスタへの他のバイトの送信を完了し、Ａｃｋ＝１を受信し、その際にＩＤＬＥ状態９０２への退出が行われる時期を示す。ＩＤＬＥ状態９０２はＩｓＷｒｔＲｅａｄｙを活動化し、物理インタフェース１０４が停止ビットの検出を開始し、ＮｅｅｄＡｃｋＬ２をリセットし、停止ビットを消費できるようにする。ＷＡＩＴＲＥＡＤ状態９３０は、物理インタフェース１０４がＡｃｋ＝０を受信し、他のデータ・バイトが必要であることを示したときに、ＲＢＹＴＥ状態９３２に移行する。
【００７９】
ＲＢＹＴＥ状態９３２（他のデータ・バイトを読み取るためのセットアップ）では、ＩＯｃｎｔＬ２  ３０２が減分され、ＩＯＢＵＦＬ２  ３０８内の次のデータ・バイトを指し示す。
【００８０】
レジスタ読取り／書込み（ＲＥＧＲＷ）コマンド状態としては、ＲＥＧＲＷＧＯ状態９１８と、ＷＡＩＴＣＭＤＤＯＮＥ状態９２０と、ＣＭＤＳＴＥＰ状態９２２とを含む。ＩＯＢＵＦＬ２アドレス・バイトは、基本または制御コマンド用に予約されたどのアドレスとも一致しない。そのアドレスはレジスタ読取り／書込みアドレスとして直接解釈される。ＴＭＳとＴＤＩ／ＴＤＯの両方の活動は、レジスタ読取り／書込み動作を遂行するために一連の定義済みステップで行われる。正確に６４ビットであるＳＳＲＬ２レジスタ４１４の幅が転送されることになる。
【００８１】
ＲＥＧＲＷＧＯ状態９１８（レジスタ・コマンド・シーケンスの（次の）ステップの開始）では、レジスタ・シーケンスの（次の）ステップがＴａｐＣｍｄバス上に置かれ、ＬｏａｄＣｍｄが活動化されてＪＴＡＧインタフェース２０４を開始する。ＩＯｃｎｔＬ２＝ステップ６である場合、レジスタ読取りによって読み取られたデータはＳＳＲＬ２  ４１４内にあるので、アクセス１１４のＴＡＰコントローラをＲｕｎＴｅｓｔＩｄｌｅに戻すクリーンアップ・ステップの前にＩＯＢＵＦＬ２  ３０８に保管する必要があり、最終コマンド・ステップは本来はＳＳＲ内のデータを破壊する恐れがある。これは、ＢｕｆＬｏａｄを活動化することによって遂行される。
【００８２】
ＷＡＩＴＣＭＤＤＯＮＥ状態９２０（ＴＡＰおよび／またはレジスタ読取り完了の待機）では、いかなるアクションも行われない。ＪＴＡＧ走査論理回路が活発に基本ＴＡＰコマンドを実行しているかまたはレジスタ読取り動作が開始されたがまだ完了していない。
【００８３】
ＷＡＩＴＣＭＤＤＯＮＥ状態９２０は、最新コマンド・ステップが完了したことをＪＴＡＧ走査論理回路からのＣｍｄＤｏｎｅ信号が示し、アクセスからのＳＣＩＤＬＥ信号が非活動状態になり、続いて活動状態への復帰が行われた後でＲｅｇｉｓｔｅｒＲＷｄｏｎｅ信号が活動状態になったときに、ＣＭＤＳＴＥＰ状態９２２に移行する。ＲｅｇｉｓｔｅｒＲＷｄｏｎｅ信号はレジスタ読取りのステップ３の間のみ重要であり、その直後にレジスタ読取り動作が行われるはずである。
【００８４】
ＣＭＤＳＴＥＰ状態９２２（次のコマンド・ステップへの前進）では、ＩＯｃｎｔＬ２が増分され、ＩＯｃｎｔＬ２はレジスタ読取り／書込みコマンド・ステップ全体にインデックスを付けるためにＣｍｄＭｕｘＳｅｌで使用される。
【００８５】
ＣＭＤＳＴＥＰ状態９２２はＳＣＯＭＧＯに移行し、レジスタ読取りおよび書込みコマンド・シーケンスはどちらも正確に７ステップの長さである。ステップ７がまだ完了していない場合、次のステップを開始するためのループバックが設けられている。ＣＭＤＳＴＥＰ状態９２２は、７番目のステップが完了したときに、ＣＨＫＳＴＯＰ状態９２４に移行する。
【００８６】
図１６は、製造テスト・インタフェースおよびグローバル集積回路間（Ｉ2Ｃ）バス相互接続装置１００のテスト・アクセス・ポート（ＴＡＰ）および境界走査アーキテクチャであるアクセス１１４の主要機能を示している。アクセスは、ＪＴＡＧ走査機能１１０２と走査通信機能１１０４を提供する。ＪＴＡＧ走査機能１１０２により、Ｉ2Ｃスレーブ状態マシン１０２は線ＴＡＰ／ＳＰに示すテスト・アクセス・ポート（ＴＡＰ）インタフェース（ＩＥＥＥ１１４９．１）によりチップ・リングを走査することができる。アテンション出力とパワーオンリセット（ＰＯＲ）出力も線ＴＡＰ／ＳＰに示す位置に供給される。アテンション出力は、観測または介入／回復を必要とする条件に応じてＩ2Ｃスレーブ状態マシン１０２に警告するために供給される。
【００８７】
走査通信機能１１０４は、チップの機能論理回路と走査機能との間のパラレル・データ経路を提供する。アクセス動作は、チップ・クロックが動作し、システムが動作している間に実行することができ、走査通信機能１１０４はこれを利用して、動作中のチップまたはシステムとの通信を可能にする。
【００８８】
クロック・ツリー１１１４は、アクセス１１４からＴＣＫ  ＳＣＡＮ  ＣＬＯＣＫＳ入力を受信する。クロック・ツリー１１１４はチップ・クロックも出力する。任意選択でセミカスタムのＬＢＩＳＴ／ＳＣＡＮインタフェース１１１６を使用して、チップ走査リングをレベル依存形走査設計（ＬＳＳＤ）リングおよびＢＩＳＴチャネルなどの機能グループに編成する。インタフェース１１１６は、アクセス１１４のＪＴＡＧ走査１１０２と機能チップ論理回路１１１８との間に結合される。
【００８９】
好ましい実施の形態の新しい命令である走査通信即時読取りは、アクセス１１４のＪＴＡＧ走査コントローラの設計に追加されたものであり、Ｉ2ＣとＪＴＡＧの間の新しいインタフェース機能の設計を容易にするものである。
【００９０】
新しい命令である走査通信即時読取りの設計以前は、チップ・レジスタの読取りは２つのステップを必要とした。すなわち、ステップ１は、アクセス走査コントローラ・コマンドである「走査通信読取り」（１６進コード「１７」）を実行して、ターゲット・チップ・レジスタの内容を取り出し、アクセス走査通信データ・レジスタ１１０４内に内容をロードすることである。ステップ２は、アクセス走査コントローラ・コマンドである「スキャンアウト」（１６進コード「１２」）を実行して、アクセス走査通信データ・レジスタ１１０４の内容を読み出すことである。この２ステップ・プロセスは、既存のソフトウェアおよびハードウェアに対応するために設計されたものである。
【００９１】
この新しい走査通信即時読取りコマンドにより、ステップ１および２は単一ステップに結合される。すなわち、アクセス走査コントローラ・コマンドである「走査通信即時読取り」（１６進コード「１４」）を実行して、ターゲット・チップ・レジスタ１１２０の内容を取り出し、アクセス走査通信データ・レジスタ１１０４内に内容をロードし、アクセス走査通信データ・レジスタ１１０４の内容を直ちに読み出すことである。
【００９２】
Ｉ2ＣとＪＴＡＧの間の新しいインタフェース機能が元の２ステップ・プロセスを使用しなければならない場合、１クロック・サイクル（それ自体のＩ2Ｃクロック・サイクルのうちの１つ）で２つのステップを実行しようと試みる必要があるだろう。Ｉ2Ｃクロック・サイクルは他のシステム・クロックに関して変動する可能性があるので、両方のステップが正常に完了すると保証することはできない。プロセスを１つのステップに削減することにより、１クロック・サイクルで動作が完了すると保証することができる。
【００９３】
相互接続装置１００およびＩ2Ｃ状態マシン１０２の動作については、以下の例により理解できるだろう。
【００９４】
６４ビット・レジスタ読取り／書込み動作は開始バイト・アドレス（Ｉ2Ｃスレーブ・ベース・アドレス）から始まり、任意選択で最高３バイトのレジスタ読取り／書込みアドレス（ＬＳＢｙｔｅ、上位ビットが先）が続く。一実施の形態では、８バイト整列のレジスタ読取り／書込みアドレスを定義する。書込みはすべて３バイトのレジスタ読取り／書込みアドレスから始めなければならず、読取りは前に書き込まれたアドレスを使用するかまたは再始動／読取りバイトの前にそのアドレスのうちの１バイト、２バイト、または３バイトすべて（ＣＲＣ検査が使用可能になっていない場合）を変更することができる。Ｉ2Ｃスレーブは、２４ビット・レジスタ読取り／書込みアドレス（２３から０まで、０＝ＬＳＢ）を実現する。アクセス／ＪＴＡＧは、ＬＳＢをパリティ・ビットとして定義する。残りの２３ビット（２３から１まで）はバイト整列アドレスを表す。レジスタ読取り／書込み転送は必ず８バイト幅で行われるが、各チップは通常、必ず８バイト境界上に整列することができない可変幅のレジスタを構築する。Ｉ2Ｃレジスタ読取り／書込みデータ・フィールド内のデータの具体的な位置合わせは、チップの実施態様に依存する。停止ビットをこの時点で受信した場合は、書き込まれたアドレスの一部分のみが変更されることになり、他の活動は一切開始されない。
【００９５】
書込み動作の場合、４番目のバイト（ＬＳＢｙｔｅ、上位ビットが先）から開始し、書込み動作用のデータが続く。停止またはオーバフロー条件が１つまたは複数のデータ・バイトに続くと、レジスタ読取り／書込み動作がキックオフされ、レジスタ読取り／書込みアドレスは自動増分式ではない。８バイトを上回るデータが書き込まれる／読み取られると、オーバフロー／アンダーフローが発生する。この設計のオプションとして、８バイトを上回る書込み／読取り用の連続レジスタ読取り／書込みアドレスを書き込む／読み取るためにレジスタ読取り／書込みアドレスを自動増分式にすることができる。８バイトを上回るデータを書き込むと、同じレジスタ読取り／書込みアドレスにデータが上書きされることになる。８バイト未満のデータを書き込むと、完全な８バイトでレジスタ読取り／書込みアドレスが書き込まれることになり、データの最上位バイトは前の動作からレジスタ読取り／書込みデータＩＯバッファ内に残っているものとともに書き込まれることになる。ＣＲＣ検査が使用可能になっている場合、良好なデータ転送に上書きするのを防止するために、スレーブは書込み中に９番目（ＣＲＣ）のバイトを肯定応答しなくなる。
【００９６】
読取り動作の場合、Ｉ2Ｃインタフェース上で再始動（停止後に開始が続く）が出され、Ｒ／Ｗビット＝「１」になる。これは、Ｉ2Ｃハードウェア内でキックオフすべきレジスタ読取りをトリガするものである。次にデータフローは反転し、スレーブは各肯定応答ごとに１つのデータ・バイトを返す（ＬＳＢｙｔｅが先）。レジスタ読取り／書込みアドレスは自動増分式ではない。８バイトを上回る量が読み取られた場合、そのデータはＬＳＢｙｔｅから繰り返されることになる。
【００９７】
非レジスタＴＡＰコマンド・フォーマットは予約されたレジスタ読取り／書込みアドレス（２３：１２）＝ｘ「５２４」（このアドレスは再配置可能である）によって識別される。Ｔａｐ  Ｃｍｄビット１０：８の値によって選択される８通りの動作モードが存在する。ビット１１は今後の使用のために予約されている。基本ＴＡＰコマンド（ＴａｐＣｍｄアドレス（１１：８）＝「００００」）フォーマットでは、レジスタ読取り／書込みアドレスのＬＳＢｙｔｅは、ＴＭＳまたはＴＤＩ上のＴＡＰポートにビットをシフトアウトさせ、ＴＤＯを取り込むＴＡＰコマンドとして解釈される。これにより、Ｉ2Ｃインタフェース１０４はＪＴＡＧ論理回路によってサポートされるどのアクションでも実行することができる。停止またはオーバフロー条件は、書込み動作およびオーバフロー条件に関するその現行値によりＢＣＲをキックオフする。Ｒ／Ｗアドレス・ビットが１に設定された停止または開始は、読取り動作に関するその現行値によりＢＣＲをキックオフする。「BCR_value mod 8」（残りが非ゼロの場合は＋１）バイトを上回るデータを書き込むかまたは読み取ると、ＢＣＲ再ロードがデータ・ストリームを続行する（すなわち、走査リング内の連続バイトを書き込む／読み取る）。ＣＲＣ検査が使用可能になっている場合、ＣＲＣバイトが正しく伝送されない限り、すべての読取り／書込み基本およびレジスタ読取り／書込みは抑制される。
【００９８】
Ｔａｐコマンド例：  ６４ビット＋ビット・リング・レジスタ読取り／書込み：（ＣＲＣ使用不能）
内部走査リングの基本６４ビット・スキャンアウトに続いて１ビット・スキャンアウトを実行するために必要なＩ2Ｃコマンドのシーケンスについて以下に詳述する。
【００９９】
１．基本コマンドのロード：  Ｔａｐ状態マシンをまずテスト論理リセットにし、次にシフトＩＲにして、命令をスキャンインするようスレーブに命令する。
Ｉ2Ｃ書込み開始ｗ／Ｒ／Ｗビット＝０、長さ＝５バイト、ＳＴＯＰ
バイト１：０８ｘ：１０個のＴＣＫパルス（アドレス／コマンド・バイト後のデータがＴＭＳシーケンスになる）
バイト２：４０ｘ：基本コマンド・アドレスのＬＳＢ
バイト３：５２ｘ：基本コマンド・アドレスのＭＳＢ
バイト４：ＤＦｘ：値のＴＭＳシーケンス（右端のＬＳＢからＭＳＢへ）
バイト５：００ｘ：連続した値のＴＭＳシーケンス（Ｔａｐ  ＳＭをシフトＩＲにする）
【０１００】
２．基本コマンドおよび命令データのロード：  Ｔａｐコントローラ命令レジスタに０Ｆ  ８０  ００  ４１をスキャンインするようスレーブに命令する。これは内部リングのスキャンアウトであり、次にＴａｐ  Ｓ／ＭをＥｘｉｔ１−ＩＲにする。
Ｉ2Ｃ書込み開始ｗ／Ｒ／Ｗビット＝０、長さ＝７バイト、ＳＴＯＰ
バイト１：ＤＥｘ：３２個のＴＣＫパルス
バイト２：４０ｘ：基本コマンド・アドレスのＬＳＢ
バイト３：５２ｘ：基本コマンド・アドレスのＭＳＢ
バイト４：４１ｘ：命令のＬＳＢ
バイト５：００ｘ：命令の次のバイト
バイト６：８０ｘ：命令の次のバイト
バイト７：０Ｆｘ：命令のＭＳＢ（内部走査リングのスキャンアウト）
【０１０１】
３．基本コマンドのロード：  Ｔａｐ状態マシンを（Ｅｘｉｔ１−ＩＲから）シフトＤＲに順序づけるようスレーブに命令する。
Ｉ2Ｃ書込み開始ｗ／Ｒ／Ｗビット＝０、長さ＝４バイト、ＳＴＯＰ
バイト１：０２ｘ：４個のＴＣＫパルス
バイト２：４０ｘ：基本コマンド・アドレスのＬＳＢ
バイト３：５２ｘ：基本コマンド・アドレスのＭＳＢ
バイト４：０３ｘ：値のＴＭＳシーケンス（右端のＬＳＢからＭＳＢへ、Ｔａｐ  Ｓ／ＭをシフトＤＲにする）
【０１０２】
４．基本コマンドのロード：  すべてについてＴＭＳ＝０の６４個のＴＣＫパルスを開始し、Ｔａｐ  Ｓ／ＭをシフトＤＲに保持するようスレーブに命令する。
Ｉ2Ｃ書込み開始コマンド：  すべてについてＴＭＳ＝０の６４個のＴＣＫパルスを開始し、Ｔａｐ  Ｓ／ＭをシフトＤＲに保持するようスレーブに命令する。
バイト１：ＢＥｘ：６４個のＴＣＫパルス
バイト２：４０ｘ：基本コマンド・アドレスのＬＳＢ
バイト３：５２ｘ：基本コマンド・アドレスのＭＳＢ
【０１０３】
５．スキャンアウト・コマンド用の戻りデータの獲得：  ＴＭＳが０であり、Ｔａｐ  Ｓ／ＭをシフトＤＲに残す。
Ｉ2Ｃ読取り再始動ｗ／Ｒ／Ｗビット＝１、長さ＝８バイト、ＳＴＯＰ
バイト１：ＦＥｘ：データのＬＳＢ
バイト２：０Ｆｘ：データの次のバイト
バイト３：ＤＣｘ：データの次のバイト
バイト４：ＢＡｘ：データの次のバイト
バイト５：ＥＦｘ：データの次のバイト
バイト６：ＢＥｘ：データの次のバイト
バイト７：ＡＤｘ：データの次のバイト
バイト８：ＤＥｘ：データのＭＳＢバイト
【０１０４】
６．次の基本コマンドのロード：  ＴＭＳ＝１の１個のＴＣＫパルスを開始し、１ビットＳＣＡＮ後にＴａｐ  Ｓ／ＭをＥｘｉｔ１−ＤＲにキックするようスレーブに命令する。
Ｉ2Ｃ書込み開始ｗ／Ｒ／Ｗビット＝０、長さ＝３バイト、ＳＴＯＰ
バイト１：ＦＦｘ：１個のＴＣＫパルス
バイト２：４０ｘ：基本コマンド・アドレスのＬＳＢ
バイト３：５２ｘ：基本コマンド・アドレスのＭＳＢ
【０１０５】
７．スキャンアウト・コマンド用の戻りデータの獲得（１ビット）：  Ｔａｐ  Ｓ／ＭをＥｘｉｔ１−ＤＲにキックする。
Ｉ2Ｃ読取り再始動ｗ／Ｒ／Ｗビット＝１、長さ＝１バイト、ＳＴＯＰ
バイト１：ＦＥｘ：データのＬＳＢ（右端のビットのみ有効である）
【０１０６】
８．次の基本コマンドのロード：  Ｔａｐ状態マシンをテスト論理リセット状態にするようスレーブに命令する。
Ｉ2Ｃ書込み開始ｗ／Ｒ／Ｗビット＝０、長さ＝４バイト、ＳＴＯＰ
バイト１：０３ｘ：５個のＴＣＫパルス
バイト２：４０ｘ：基本コマンド・アドレスのＬＳＢ
バイト３：５２ｘ：基本コマンド・アドレスのＭＳＢ
バイト４：１Ｆｘ：右端のビットから左端までのＴＭＳ値のシーケンス（Ｔａｐ状態マシンをリセットに戻すために５ビットのみ使用する）
【０１０７】
Ｔａｐコマンド例：  ２．５バイト・レジスタ書込み：
内部走査リングに２．５バイト（２０ビット）のデータをスキャンインするために必要なＩ2Ｃコマンドのシーケンスについて以下に詳述する（注：結果として得られるスキャンイン・データは１６進のＥＦ  ＢＡになる）。
【０１０８】
１．基本コマンドのロード：  Ｔａｐ状態マシンをまずテスト論理リセットにし、次にシフトＩＲにして、命令をスキャンインするようスレーブに命令する。
Ｉ2Ｃ書込み開始ｗ／Ｒ／Ｗビット＝０、長さ＝５バイト、ＳＴＯＰ
バイト１：０８ｘ：１０個のＴＣＫパルス（アドレス／コマンド・バイト後のデータがＴＭＳシーケンスになる）
バイト２：４０ｘ：基本コマンド・アドレスのＬＳＢ
バイト３：５２ｘ：基本コマンド・アドレスのＭＳＢ
バイト４：Ｄｆｘ：値のＴＭＳシーケンス（右端のＬＳＢからＭＳＢへ）
バイト５：００ｘ：連続した値のＴＭＳシーケンス（Ｔａｐ  ＳＭをシフトＩＲにする）
【０１０９】
２．基本コマンドおよび命令データのロード：  Ｔａｐコントローラ命令レジスタに０Ｆ  ８０  ００  ４１をスキャンインするようスレーブに命令する。これは内部リングのスキャンアウトであり、次にＴａｐ  Ｓ／ＭをＥｘｉｔ１−ＩＲにする。
Ｉ2Ｃ書込み開始ｗ／Ｒ／Ｗビット＝０、長さ＝７バイト、ＳＴＯＰ
バイト１：Ｄｅｘ：３２個のＴＣＫパルス
バイト２：４０ｘ：基本コマンド・アドレスのＬＳＢ
バイト３：５２ｘ：基本コマンド・アドレスのＭＳＢ
バイト４：４１ｘ：命令のＬＳＢ
バイト５：００ｘ：命令の次のバイト
バイト６：８０ｘ：命令の次のバイト
バイト７：０Ｆｘ：命令のＭＳＢ（内部走査リングのスキャンアウト）
【０１１０】
３．基本コマンドのロード：  Ｔａｐ状態マシンを（Ｅｘｉｔ１−ＩＲから）シフトＤＲに順序づけるようスレーブに命令する。
Ｉ2Ｃ書込み開始ｗ／Ｒ／Ｗビット＝０、長さ＝４バイト、ＳＴＯＰ
バイト１：０２ｘ：４個のＴＣＫパルス
バイト２：４０ｘ：基本コマンド・アドレスのＬＳＢ
バイト３：５２ｘ：基本コマンド・アドレスのＭＳＢ
バイト４：０３ｘ：値のＴＭＳシーケンス（右端のＬＳＢからＭＳＢへ、Ｔａｐ  Ｓ／ＭをシフトＤＲにする）
【０１１１】
４．基本コマンドのロード：  すべてについてＴＭＳ＝０の８個のＴＣＫパルスの２シリーズからなる２バイト・スキャンインを開始し、Ｓ／ＭをシフトＤＲに残すようスレーブに命令する。
Ｉ2Ｃ書込み開始ｗ／Ｒ／Ｗビット＝０、長さ＝５バイト、ＳＴＯＰ
バイト１：０６ｘ：ＴＣＫパルス（すべての場合にＴＭＳ＝０、注：２バイトのデータがあるので、内部スレーブ論理回路が２通りの別個の８ビットＳＣＡＮをキックオフするように、１６個のＴＣＫパルスが必要である。）
バイト２：４０ｘ：基本コマンド・アドレスのＬＳＢ
バイト３：５２ｘ：基本コマンド・アドレスのＭＳＢ
バイト４：ＢＡｘ：データの第１のバイト（ＬＳＢ）
バイト５：ＥＦｘ：データの次のバイト
【０１１２】
５．基本コマンドのロード：  最後の４ビットをスキャンインすることにより、２．５バイト・スキャンインを終了する。これは、最後のＴＣＫを除くすべてについてＴＭＳ＝０の４個のＴＣＫパルスになる。ＴＭＳ＝１の最後のＴＣＫはＴＡＰ  Ｓ／ＭをＥｘｉｔ１−ＤＲにキックする。
Ｉ2Ｃ書込み開始ｗ／Ｒ／Ｗビット＝０、長さ＝４バイト、ＳＴＯＰ
バイト１：Ｃ２ｘ：４個のＴＣＫパルス（最後のＴＣＫを除くすべての場合にＴＭＳ＝０）
バイト２：４０ｘ：基本コマンド・アドレスのＬＳＢ
バイト３：５２ｘ：基本コマンド・アドレスのＭＳＢ
バイト４：ＢＡｘ：スキャンイン・データの上位４ビット（右端のビット）
【０１１３】
６．次の基本コマンドのロード：  Ｔａｐ状態マシンをテスト論理リセット状態にするようスレーブに命令する。
Ｉ2Ｃ書込み開始ｗ／Ｒ／Ｗビット＝０、長さ＝４バイト、ＳＴＯＰ
バイト１：０３ｘ：５個のＴＣＫパルス
バイト２：４０ｘ：基本コマンド・アドレスのＬＳＢ
バイト３：５２ｘ：基本コマンド・アドレスのＭＳＢ
バイト４：１Ｆｘ：右端のビットから左端までのＴＭＳ値のシーケンス（Ｔａｐ状態マシンをリセットに戻すために５ビットのみ使用する）
【０１１４】
ヌルＴＡＰコマンド（ＴａｐＣｍｄアドレス（１１：８）＝「０００１」）
ＴＣＫ／ＴＭＳ／ＴＤＩ上でのＪＴＡＧ活動は抑制される。このモードは、たとえば、新しいコマンドをＩＲにスキャンインするＴａｐ  Ｃｍｄシーケンスの直後のＩＲ状況情報を読み戻すためのものである。
【０１１５】
ＳＳＲデータ（ＩＯバッファ）へのＩ2Ｃ書込みは何の効果もない。ＳＳＲデータのＩ2Ｃ読取りは、スキャンアウトした最新のＪＴＡＧ／ＴＤＯデータを返すことになる。
【０１１６】
Ｔａｐコマンド例：  命令のスキャンイン直後のＩＲ状況の読取り
１．基本コマンドのロード：  Ｔａｐ状態マシンをまずテスト論理リセットにし、次にシフトＩＲにして、命令をスキャンインするようスレーブに命令する。
Ｉ2Ｃ書込み開始ｗ／Ｒ／Ｗビット＝０、長さ＝５バイト、ＳＴＯＰ
バイト１：０８ｘ：１０個のＴＣＫパルス（アドレス／コマンド・バイト後のデータがＴＭＳシーケンスになる）
バイト２：４０ｘ：基本コマンド・アドレスのＬＳＢ
バイト３：５２ｘ：基本コマンド・アドレスのＭＳＢ
バイト４：Ｄｆｘ：値のＴＭＳシーケンス（右端のＬＳＢからＭＳＢへ）
バイト５：００ｘ：連続した値のＴＭＳシーケンス（Ｔａｐ  ＳＭをシフトＩＲにする）
【０１１７】
２．基本コマンドおよび命令データのロード：  Ｔａｐコントローラ命令レジスタに０Ｆ  ８０  ００  ４１をスキャンインするようスレーブに命令する。これは内部リングのスキャンアウトであり、次にＴａｐ  Ｓ／ＭをＥｘｉｔ１−ＩＲにする。
Ｉ2Ｃ書込み開始ｗ／Ｒ／Ｗビット＝０、長さ＝７バイト、ＳＴＯＰ
バイト１：Ｄｅｘ：３２個のＴＣＫパルス
バイト２：４０ｘ：基本コマンド・アドレスのＬＳＢ
バイト３：５２ｘ：基本コマンド・アドレスのＭＳＢ
バイト４：４１ｘ：命令のＬＳＢ
バイト５：００ｘ：命令の次のバイト
バイト６：８０ｘ：命令の次のバイト
バイト７：０Ｆｘ：命令のＭＳＢ（内部走査リングのスキャンアウト）
【０１１８】
３．基本コマンドのロード：  走査コントローラから最後にスキャンアウトされたものを読み取るようスレーブに命令する（命令レジスタ走査が最後の動作だったので、これはＩＲ−ＳＴＡＴＵＳになる）。
Ｉ2Ｃ書込み開始ｗ／Ｒ／Ｗビット＝０、長さ＝３バイト、ＳＴＯＰ
バイト１：−−ｘ：このバイトは、このコマンドでは無指定になる
バイト２：４１ｘ：基本コマンド・アドレスのＬＳＢ
バイト３：５２ｘ：基本コマンド・アドレスのＭＳＢ
【０１１９】
４．基本読取りコマンド用の戻りデータの獲得：  スキャンアウトされたデータ（以下のダッシュで表されるもの）を返す。
Ｉ2Ｃ読取り再始動ｗ／Ｒ／Ｗビット＝１、長さ＝４バイト、ＳＴＯＰ
バイト１：−−ｘ：ＩＲ状況のＬＳＢ
バイト２：−−ｘ：ＩＲ状況の次のバイト
バイト３：−−ｘ：ＩＲ状況の次のバイト
バイト４：−−ｘ：ＩＲ状況のＭＳＢ
【０１２０】
５．次の基本コマンドのロード：  Ｔａｐ状況マシンをテスト論理リセット状態にするようスレーブに命令する。
Ｉ2Ｃ書込み開始ｗ／Ｒ／Ｗビット＝０、長さ＝４バイト、ＳＴＯＰ
バイト１：０３ｘ：５個のＴＣＫパルス
バイト２：４０ｘ：基本コマンド・アドレスのＬＳＢ
バイト３：５２ｘ：基本コマンド・アドレスのＭＳＢ
バイト４：１Ｆｘ：右端のビットから左端までのＴＭＳ値のシーケンス（Ｔａｐ状態マシンをリセットに戻すために５ビットのみ使用する）
【０１２１】
Ｉ2Ｃ停止シーケンスの発行
【０１２２】
アテンション使用可能コマンド（ＴａｐＣｍｄアドレス（１１：８）＝「００１０」）。アクセスから提起されたアテンションを使用可能にするＩ2Ｃ方法。
【０１２３】
ＳＳＲデータ（ＩＯバッファ）へのＩ2Ｃ書込みにより、Ｉ2Ｃスレーブによるアテンション検査が使用可能になる。ＪＴＡＧ活動は抑制される。
【０１２４】
ただし、このシーケンスが書き込まれると、スレーブは、アテンションが活動状態ではない場合のみ、レジスタ読取り／書込み動作を肯定応答することになることに留意されたい。アテンションが活動状態である場合、標準のＩ2Ｃ  ａｃｋパルスにより基本Ｔａｐコマンドのみ肯定応答される。
【０１２５】
Ｔａｐコマンド例：  内部でのアテンション検査の再使用可能化
１．Ｉ2Ｃ書込み開始ｗ／Ｒ／Ｗビット＝０、長さ＝４バイト、ＳＴＯＰ
２．バイト１：−−ｘ：
バイト２：４２ｘ：基本コマンド・アドレスのＬＳＢ
バイト３：５２ｘ：基本コマンド・アドレスのＭＳＢ
３．Ｉ2Ｃ停止シーケンスの発行
【０１２６】
アテンション使用不能コマンド（ＴａｐＣｍｄアドレス（１１：８）＝「００１１」）。アクセスから提起されたアテンションを使用不能にするＩ2Ｃ方法。
【０１２７】
ＳＳＲデータ（ＩＯバッファ）へのＩ2Ｃ書込みにより、Ｉ2Ｃスレーブによるアテンション検査が使用不能になる。
【０１２８】
ただし、このシーケンスが書き込まれると、スレーブは、アテンションが活動状態である場合でも、基本コマンドならびにレジスタ読取り／書込みシーケンスを肯定応答することになることに留意されたい。この方法は、次にアテンションを提起させることになる活動状態のマシン検査などの発行を無効にするために使用する。これはレジスタ読取り／書込みエラーから提起されるアテンションを矯正するものではなく、レジスタ読取り／書込みエラー後に受信したデータは無視しなければならない。デフォルトでは、アテンションはマスキングされる。
【０１２９】
Ｔａｐコマンド例：  内部でのアテンションのマスキング
１．Ｉ2Ｃ書込み開始ｗ／Ｒ／Ｗビット＝０、長さ＝４バイト、ＳＴＯＰ
２．バイト１：−−ｘ：
バイト２：４３ｘ：基本コマンド・アドレスのＬＳＢ
バイト３：５２ｘ：基本コマンド・アドレスのＭＳＢ
３．Ｉ2Ｃ停止シーケンスの発行
【０１３０】
基本コマンド例：  内部でのＣＲＣ検査の使用可能化。このバイト・シーケンスによりＣＲＣ検査がオンになる。
１．Ｉ2Ｃ書込み開始ｗ／Ｒ／Ｗビット＝０、長さ＝３バイト、ＳＴＯＰ
２．バイト１：−−ｘ：
バイト２：４５ｘ：基本コマンド・アドレスのＬＳＢ
バイト３：５２ｘ：基本コマンド・アドレスのＭＳＢ
３．Ｉ2Ｃ停止シーケンスの発行
【０１３１】
注：  バイト２：４５ｘおよびバイト３：５２ｘがスレーブに送信されるまで、ＣＲＣ検査は使用可能になる。
【０１３２】
例：  ＣＲＣを使用するレジスタ読取りの実行
この例の場合、ＣＲＣの一実施態様では、８ビットのＣＲＣアキュムレータ用としてｘ8＋ｘ4＋ｘ3＋ｘ2＋１を使用する。
【０１３３】
ＣＲＣ検査をオンにするための書込み基本デコード
１．Ｉ2Ｃ書込み開始ｗ／Ｒ／Ｗビット＝０、長さ＝３バイト、ＳＴＯＰ
２．バイト１：−−ｘ：
バイト２：４５ｘ：基本コマンド・アドレスのＬＳＢ
バイト３：５２ｘ：基本コマンド・アドレスのＭＳＢ
３．Ｉ2Ｃ停止シーケンスの発行
【０１３４】
（CRC_CHECKINGが使用可能になる。）
【０１３５】
読み取るべきアドレスならびにスレーブ・アドレスおよび３バイト・アドレス用のＣＲＣバイト（この例では５９ｘ）の送出
１．Ｉ2Ｃ書込み開始ｗ／Ｒ／Ｗビット＝０、長さ＝４バイト、ＳＴＯＰ
２．バイト１：０３ｘ：レジスタ読取り／書込みアドレスのＬＳＢ
バイト２：００ｘ：レジスタ読取り／書込みアドレスの中間バイト
バイト３：８０ｘ：レジスタ読取り／書込みアドレスのＭＳＢ
バイト４：５９ｘ：８個の０のシフトイン後のＣＲＣバイト
３．Ｉ2Ｃ停止シーケンスの発行
【０１３６】
（レジスタ読取り／書込みアドレス８００００３がスレーブに記憶される。）
【０１３７】
完了まで必要なバイト数を読み取る。ＣＲＣバイトはＩ2Ｃバス上で返送されるデータについてのみ計算される。
１．Ｉ2Ｃ書込み開始ｗ／Ｒ／Ｗビット＝１、長さ＝８バイト、ＳＴＯＰ
この例ではバイト１〜８を読み取る（可変長）
２．Ｉ2Ｃ停止シーケンスの発行
【０１３８】
最後の読取り動作時に計算されたＣＲＣバイトを入手するためには、ＣＲＣバイトとしての「１１」ｘとともに基本デコード「５２４７」ｘを伝送する必要がある（コマンドの無指定部分で「０３」ｘが送信される場合）。
１．Ｉ2Ｃ書込み開始ｗ／Ｒ／Ｗビット＝０、長さ＝４バイト、ＳＴＯＰ
２．バイト１：−−ｘ：ＣＲＣ読取りの場合の無指定（この場合には０３ｘを使用する）
バイト２：４７ｘ：読取りＣＲＣデコード・アドレス
バイト３：５２ｘ：基本アドレスのＭＳＢ
バイト４：１１ｘ：８個の０のシフトイン後のＣＲＣバイト
３．Ｉ2Ｃ停止シーケンスの発行
【０１３９】
（レジスタ読取り／書込みアドレス８００００３がスレーブに記憶される。）
【０１４０】
ＣＲＣ読取り用の基本デコードを送出した後、実行されたレジスタ読取りに関するＣＲＣを入手するために読取りシーケンスを実行することができる。１バイトのみ有効なので、１バイトだけを読み取るかまたは残りを無視しなければならない。マスタはこのバイトに対してｎｏ−ａｃｋ（「１」ｂ）でなければならないので、バス・エラーを引き起こさずにこの動作を実行することが可能である。
１．Ｉ2Ｃ書込み開始ｗ／Ｒ／Ｗビット＝１、長さ＝１バイト、ＳＴＯＰ
この例ではバイト＃１を読み取る（１バイトのみ有効である）
２．Ｉ2Ｃ停止シーケンスの発行
【０１４１】
ただし、レジスタをゼロにするために、前に計算したバイトによりＣＲＣバイトを送信しなければならないことに留意されたい。
【０１４２】
このバイト・シーケンスにより、ＣＲＣ検査がオフになる。
１．Ｉ2Ｃ書込み開始ｗ／Ｒ／Ｗビット＝０、長さ＝３バイト、ＳＴＯＰ
２．バイト１：−−ｘ：ＴＣＫパルス
バイト２：４６ｘ：基本コマンド・アドレスのＬＳＢ
バイト３：５２ｘ：基本コマンド・アドレスのＭＳＢ
３．Ｉ2Ｃ停止シーケンスの発行
【０１４３】
次のプログラマのためにＣＲＣ検査が使用不能になる。
【０１４４】
まとめとして、本発明の構成に関して以下の事項を開示する。
【０１４５】
（１）グローバル・シリアル・バスに製造テスト・インタフェースを接続するための装置であって、
前記グローバル・シリアル・バスとの間で転送すべきデータをバッファする入出力バッファ論理回路と、
前記入出力バッファ論理回路に接続され、データを受信し、そのデータを前記入出力バッファ論理回路に送信するスレーブ・インタフェース論理回路と、
前記入出力バッファ論理回路および前記スレーブ・インタフェース論理回路に結合され、前記入出力バッファ論理回路に合わせてデータ交換のペースを調整するスレーブ・コントローラとを含む装置。
（２）前記入出力バッファと前記グローバル・シリアル・バスとの間に結合され、エラー条件を処理するエラー処理論理回路をさらに含む、上記（１）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための装置。
（３）前記エラー処理論理回路が巡回冗長検査（ＣＲＣ）計算論理回路を含む、上記（２）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための装置。
（４）前記グローバル・シリアル・バスが集積回路間（Ｉ2Ｃ）バスを含む、上記（１）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための装置。
（５）前記製造テスト・インタフェースがジョイント・テスト・アクション・グループ（ＪＴＡＧ）インタフェースを含み、前記スレーブ・インタフェース論理回路が前記ＪＴＡＧインタフェースとの間で送受信されるＪＴＡＧフォーマット・コマンドを処理する、上記（１）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための装置。
（６）前記入出力バッファと前記グローバル・シリアル・バスとの間に結合され、エラー条件を処理するエラー処理論理回路をさらに含み、前記ＪＴＡＧインタフェースが前記エラー処理論理回路にアテンション信号を供給し、前記アテンション信号がエラーを示す、上記（５）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための装置。
（７）前記エラー処理論理回路が巡回冗長検査（ＣＲＣ）計算論理回路を含み、前記ＣＲＣ計算論理回路がＣＲＣ計算を実現するために使用可能になる、上記（６）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための装置。
（８）前記スレーブ・インタフェース論理回路が、前記アテンション信号に応答してエラー検査を使用可能および使用不能にするように構成される、上記（６）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための装置。
（９）前記スレーブ・コントローラが、前記スレーブ・インタフェース論理回路と前記ＪＴＡＧインタフェースの間のデータ交換のペースを調整する、上記（５）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための装置。
（１０）前記スレーブ・コントローラが、前記スレーブ・インタフェース論理回路と前記ＪＴＡＧインタフェースの間のデータ交換のためにデータ・ステアリングおよび経路指定を行う、上記（５）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための装置。
（１１）前記スレーブ・コントローラが、レジスタ読取り／書込み動作のために順序づけた一連のコマンドを前記スレーブ・インタフェース論理回路に供給する、上記（５）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための装置。
（１２）前記スレーブ・インタフェース論理回路が同時に発生したＪＴＡＧ読取り／書込み動作を処理し、前記スレーブ・コントローラが書込み動作に続いてＪＴＡＧ命令レジスタ（ＩＲ）状況読取り動作のための読取り動作を行う、上記（５）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための装置。
（１３）前記スレーブ・コントローラが、開始バイト・アドレスに続いてレジスタ読取り／書込み動作のためのレジスタ読取り／書込みアドレスを供給する、上記（５）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための装置。
（１４）前記スレーブ・コントローラが、走査通信レジスタ読取り／書込み動作のために順序づけた一連のコマンドを前記スレーブ・インタフェース論理回路に供給する、上記（５）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための装置。
（１５）前記グローバル・シリアル・バスが、集積回路間（Ｉ2Ｃ）バスと、前記Ｉ2Ｃバスと前記入出力バッファ論理回路の間に結合された物理インタフェースとを含み、前記スレーブ・コントローラが、前記物理インタフェースと前記入出力バッファ論理回路の間のデータ交換のペースを調整する、上記（５）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための装置。
（１６）前記スレーブ・コントローラが、前記物理インタフェースと前記入出力バッファ論理回路の間のデータ交換のためにデータ・ステアリングを行う、上記（１５）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための装置。
（１７）前記スレーブ・コントローラが、レジスタ読取り動作のために前記スレーブ・インタフェース論理回路にコマンドを供給する、上記（５）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための装置。
（１８）前記スレーブ・コントローラが、レジスタ書込み動作のために前記スレーブ・インタフェース論理回路にコマンドを供給する、上記（５）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための装置。
（１９）前記スレーブ・インタフェース論理回路がテスト・クロック（ＴＣＫ）生成論理回路を含む、上記（５）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための装置。
（２０）前記スレーブ・インタフェース論理回路が前記ＪＴＡＧインタフェースからロード・コマンド信号を受信する、上記（５）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための装置。
（２１）前記ＪＴＡＧインタフェースと前記スレーブ・インタフェース論理回路が内部ＪＴＡＧバスによって接続され、前記内部ＪＴＡＧバス上の活動を開始するために前記ロード・コマンド信号が活動化される、上記（２０）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための装置。
（２２）前記グローバル・シリアル・バスが集積回路間（Ｉ2Ｃ）バスを含み、エラー処理のために肯定応答信号が使用される、上記（５）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための装置。
（２３）前記スレーブ・コントローラが、１つまたは複数の基本動作を実行するために前記スレーブ・インタフェース論理回路にコマンドを供給する、上記（５）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための装置。
（２４）前記基本動作が、前記ＪＴＡＧインタフェースへの制御、命令、データ、状況交換のうちの少なくとも１つを選択する、上記（５）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための装置。
（２５）前記ＪＴＡＧインタフェースが走査通信即時読取り論理回路を含む、上記（５）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための装置。
（２６）前記走査通信即時読取り論理回路が、ターゲット・レジスタ内容を取り出して走査通信データ・レジスタにロードし、前記走査通信データ・レジスタの前記内容を直ちに読み出すために１つのステップを実行する、上記（５）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための装置。
（２７）前記スレーブ・コントローラが、前記入出力バッファ論理回路とのデータ交換のためにデータ・ステアリングおよび経路指定を行う、上記（１）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための装置。
（２８）グローバル・シリアル・バスに製造テスト・インタフェースを接続するための方法であって、
物理インタフェースと内部バスの間にスレーブ状態マシンを設け、前記物理インタフェースが前記グローバル・シリアル・バスに接続され、前記内部バスが前記製造テスト・インタフェースに接続されるステップと、
前記スレーブ状態マシンを使用するステップであって、
前記グローバル・シリアル・バスとの間で転送すべきデータをバッファするステップと、
前記製造テスト・インタフェースと前記グローバル・シリアル・バスの間のデータ交換のペースを調整するステップとを実行するためのステップとを含む方法。
（２９）前記スレーブ状態マシンが、エラー条件を処理するステップをさらに実行する、上記（２８）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための方法。
（３０）前記スレーブ状態マシンが、走査通信読取り動作のためのコマンドを供給するステップをさらに実行する、上記（２８）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための方法。
（３１）前記スレーブ状態マシンが、走査通信書込み動作のためのコマンドを供給するステップをさらに実行する、上記（２８）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための方法。
（３２）前記スレーブ状態マシンが、制御読取り動作のためのコマンドを供給するステップをさらに実行する、上記（２８）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための方法。
（３３）前記スレーブ状態マシンが、制御書込み動作のためのコマンドを供給するステップをさらに実行する、上記（２８）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための方法。
（３４）前記スレーブ状態マシンが、基本書込み動作のためのコマンドを供給するステップをさらに実行する、上記（２８）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための方法。
（３５）前記スレーブ状態マシンが、基本読取り動作のためのコマンドを供給するステップをさらに実行する、上記（２８）に記載のグローバル・シリアル・バスに製造テスト・インタフェースを接続するための方法。
（３６）グローバル・シリアル・バスに製造テスト・インタフェースを接続するための集積回路デバイスであって、前記集積回路デバイスが、
前記グローバル・シリアル・バスとの間で転送すべきデータをバッファする入出力バッファ論理回路と、
前記入出力バッファ論理回路に接続され、データを受信し、そのデータを前記入出力バッファ論理回路に送信するスレーブ・インタフェース論理回路と、
前記入出力バッファ論理回路および前記スレーブ・インタフェース論理回路に結合され、前記入出力バッファ論理回路に合わせてデータ交換のペースを調整するスレーブ・コントローラとを含む集積回路デバイス。
（３７）前記入出力バッファ論理回路と前記スレーブ・インタフェース論理回路の間に結合されたエラー処理論理回路をさらに含む、上記（３６）に記載の集積回路デバイス。
【図面の簡単な説明】
【図１】好ましい実施の形態による製造テスト・インタフェースおよびグローバル集積回路間（Ｉ2Ｃ）バス相互接続装置のブロック図表現である。
【図２】好ましい実施の形態による図１の製造テスト・インタフェースおよびグローバル集積回路間（Ｉ2Ｃ）バス相互接続装置のＩ2Ｃスレーブ状態マシンのスレーブ・データおよび制御レジスタを示すブロック図表現である。
【図３】好ましい実施の形態による図１の製造テスト・インタフェースおよびグローバル集積回路間（Ｉ2Ｃ）バス相互接続装置のＩ2Ｃスレーブ状態マシンのスレーブＩＯバッファ論理回路を示すブロック図表現である。
【図４】好ましい実施の形態による図１の製造テスト・インタフェースおよびグローバル集積回路間（Ｉ2Ｃ）バス相互接続装置のＩ2Ｃスレーブ状態マシンのスレーブ・テスト・アクセス・ポート（ＴＡＰ）インタフェースを示すブロック図表現である。
【図５】好ましい実施の形態による図１の製造テスト・インタフェースおよびグローバル集積回路間（Ｉ2Ｃ）バス相互接続装置のＩ2Ｃスレーブ状態マシンのスレーブ・コントローラを示すブロック図表現である。
【図６】好ましい実施の形態による図１の製造テスト・インタフェースおよびグローバル集積回路間（Ｉ2Ｃ）バス相互接続装置の物理インタフェースとＩ2Ｃスレーブ状態マシンのＩＯバッファ論理回路とのデータ・ペーシングを示すブロック図表現である。
【図７】好ましい実施の形態による図１の製造テスト・インタフェースおよびグローバル集積回路間（Ｉ2Ｃ）バス相互接続装置のＩ2Ｃスレーブ状態マシンのスレーブ・テスト・アクセス・ポート（ＴＡＰ）インタフェースとＩ2Ｃスレーブ状態マシンのＩＯバッファ論理回路とのデータ・ペーシングを示すブロック図表現である。
【図８】好ましい実施の形態による図１の製造テスト・インタフェースおよびグローバル集積回路間（Ｉ2Ｃ）バス相互接続装置のＩ2Ｃスレーブ状態マシンのスレーブ・エラー処理論理回路を示すブロック図表現である。
【図９】好ましい実施の形態による図１の製造テスト・インタフェースおよびグローバル集積回路間（Ｉ2Ｃ）バス相互接続装置のＩ2Ｃスレーブ状態マシンの複数の状態を示すブロック図表現である。
【図１０】好ましい実施の形態による図１の製造テスト・インタフェースおよびグローバル集積回路間（Ｉ2Ｃ）バス相互接続装置のＩ2Ｃスレーブ状態マシンの基本書込み制御フローを示す図である。
【図１１】好ましい実施の形態による図１の製造テスト・インタフェースおよびグローバル集積回路間（Ｉ2Ｃ）バス相互接続装置のＩ2Ｃスレーブ状態マシンの基本読取り制御フローを示す図である。
【図１２】好ましい実施の形態による図１の製造テスト・インタフェースおよびグローバル集積回路間（Ｉ2Ｃ）バス相互接続装置のＩ2Ｃスレーブ状態マシンのレジスタ書込み制御フローを示す図である。
【図１３】好ましい実施の形態による図１の製造テスト・インタフェースおよびグローバル集積回路間（Ｉ2Ｃ）バス相互接続装置のＩ2Ｃスレーブ状態マシンのレジスタ読取り制御フローを示す図である。
【図１４】好ましい実施の形態による図１の製造テスト・インタフェースおよびグローバル集積回路間（Ｉ2Ｃ）バス相互接続装置のＩ2Ｃスレーブ状態マシンの制御書込み制御フローを示す図である。
【図１５】好ましい実施の形態による図１の製造テスト・インタフェースおよびグローバル集積回路間（Ｉ2Ｃ）バス相互接続装置のＩ2Ｃスレーブ状態マシンの制御読取り制御フローを示す図である。
【図１６】好ましい実施の形態による図１の製造テスト・インタフェースおよびグローバル集積回路間（Ｉ2Ｃ）バス相互接続装置のテスト・アクセス・ポート（ＴＡＰ）および境界走査アーキテクチャであるアクセスを示すブロック図表現である。
【符号の説明】
１００  製造テスト・インタフェースおよびグローバル集積回路間（Ｉ2Ｃ）バス相互接続装置
１０２  Ｉ2Ｃ状態マシンおよびトランスレータ
１０４  Ｉ2Ｃ物理インタフェース
１０６  Ｉ2Ｃバス
１０８  マルチプレクサ（ＭＵＸ）
１１０  内部ＪＴＡＧバス
１１２  外部ＪＴＡＧバス
１１３  制御入力
１１４  テスト・アクセス・ポートおよび境界走査アーキテクチャであるアクセス（または他のＪＴＡＧ実施態様）
１１８  クロック制御、組込み自己試験（ＢＩＳＴ）およびその他の機能
１２０  アーキテクチャ・レジスタ
１２２  ＪＴＡＧ走査可能レジスタ
【図１】
0004056191.tif 000012
【図２】
0004056191.tif 000013
【図３】
0004056191.tif 000014
【図４】
0004056191.tif 000015
【図５】
0004056191.tif 000016
【図６】
0004056191.tif 000017
【図７】
0004056191.tif 000018
【図８】
0004056191.tif 000019
【図９】
0004056191.tif 000020
【図１０】
0004056191.tif 000021
【図１１】
0004056191.tif 000022
【図１２】
0004056191.tif 000023
【図１３】
0004056191.tif 000024
【図１４】
0004056191.tif 000025
【図１５】
0004056191.tif 000026
【図１６】
0004056191.tif 000027