(57)【特許請求の範囲】
【請求項１】
集積回路（IC）への周辺接続を選択的に可能および不能にするJTAG試験回路構造であって、
境界走査ラッチレジスタであって、前記周辺接続と電気通信しまた複数の出力可能ビット位置と電気通信する複数のデータビット位置を含み、各前記出力可能ビット位置を用いて多数の前記データビット位置に記憶されているデータビットの出力を可能にし、ここで前記出力可能ビット位置に記憶されている情報は複数の前記周辺接続を選択的に高インピーダンスモードにして前記データビット位置と前記周辺接続の間の電気通信を選択的に不能にする前記境界走査ラッチレジスタと、
境界走査シフトレジスタであって、前記シフトレジスタはその内容を前記ラッチレジスタに並列にロードできるように前記ラッチレジスタに接続し、前記シフトレジスタは前記ラッチレジスタ内の前記複数のデータビット位置に対応するシフトレジスタビット位置を含み、また前記ラッチレジスタ内の前記出力可能ビット位置に対応するシフトレジスタ出力可能ビット位置を含み、前記シフトレジスタ出力可能ビット位置を前記シフトレジスタ内で論理的に近接させてグループ化し、前記シフトレジスタ出力可能ビット位置は各前記出力可能ビット位置により可能になるデータビット位置の数より少ないシフトレジスタ位置だけ論理的に間隔をあける前記境界走査シフトレジスタと、
スイッチング回路であって、前記スイッチング回路が第１状態にあるときは論理的に近接した前記シフトレジスタ出力可能ビット位置だけを通る第１経路を与え、前記スイッチング回路が第２状態にあるときは前記シフトレジスタ出力可能ビット位置と前記シフトレジスタデータビット位置を通る第２経路を与え、前記第１経路では前記シフトレジスタ出力可能ビット位置の状態は変わるが前記シフトレジスタデータビット位置の状態は変わらない前記スイッチング回路と、
を備えるJTAG試験回路構造。
【請求項２】
前記シフトレジスタ出力可能ビット位置は互いに直列にまた論理的に近接させて接続する、請求項１に記載のJTAG試験回路構造。
【請求項３】
前記スイッチング回路はマルチプレクサを備える、請求項１に記載のJTAG試験回路構造。
【請求項４】
前記スイッチング回路はJTAG出力に接続する、請求項１に記載のJTAG試験回路構造。
【請求項５】
JTAG境界走査試験回路を用いて集積回路（IC）への周辺接続を選択的に可能および不能にする方法であって、前記JTAG境界走査試験回路は複数のシフトレジスタ出力可能ビット位置を直列境界走査シフトレジスタ内で論理的に近接させてグループ化し、前記シフトレジスタ出力可能要素は各複数の出力可能要素により可能になるデータビット要素の数より少ないシフトレジスタ位置だけ論理的に間隔をあけ、前記方法は、
前記直列境界走査シフトレジスタ内の前記出力可能要素とデータ試験ビット要素を接続して、前記出力可能要素とデータ試験ビット要素を通る第１経路を与え、また前記出力可能要素だけを通る第２経路を与え、ここで前記出力可能要素内に記憶されている情報は複数の前記周辺接続を選択的に高インピーダンスモードにして前記データ試験ビット要素と前記周辺接続との間の電気通信を選択的に不能にするステップと、
JTAG境界走査試験に用いるビットストリームを生成するステップと、
前記第１経路か第２経路かを選択するステップと、
前記生成されたビットストリームを前記直列境界走査シフトレジスタを通してシフトするステップとを含む、集積回路への周辺接続を選択的に可能および不能にする方法。
【発明の詳細な説明】
発明の背景
発明の分野
この発明はJTAG境界走査構造を用いる回路に関するもので、より詳しく述べると、JTAG試験レジスタを通して制御することのできるバス出力可能（イネーブル）を有する回路に関する。
従来の方法の説明
例えばプリント回路カードに搭載された複雑な集積回路のよく知られた試験方法は、国際総合試験グループ（JTAG）（International Joint Test Action Group）により規定されたIEEE1149.1境界走査標準である。この標準を引例とする。この標準を実現した一例として直列境界走査試験用の構成要素（例えば集積回路）の設計がある。これはシフトレジスタ要素をデイジーチェーン（daisy chained）構成にして集積回路構成要素の周辺に経路を形成したものである。
JTAGを用いる直列試験の一般的概念は、直列データを多数の集積回路構成要素にシフトインして通すことにより中の回路をシミュレートする、すなわち回路から所定の出力信号を生成することである。その後で、集積回路構成要素が生成したデータ、または集積回路構成要素の入力に受けたデータを、その集積回路構成要素からJTAG主試験回路にシフトする。
主試験回路に戻されたデータストリームが所期の通りでない場合は、試験回路は回路の故障を検出する。データストリーム内の問題点をソフトウェア制御の下に詳細に分析することにより、回路内の故障を全て切り離すことができる。
場合によっては、PCカード上の１つのチップ、またはチップの１つまたは複数のバス接続を、PCカード上の他の回路から切り離すことが望ましい。例えば、集積回路（IC）チップは内部メモリバスインターフェース回路や、PCIバスインターフェース回路や、マイクロプロセッサ（μＰ）バスインターフェース回路などを含み、これによりICチップ内の回路とPCカード上の種々の通信バスを接続する。一般にICチップ内のJTAG試験回路はJTAG境界走査データシフトレジスタ（BSR）を備え、BSRはICチップ上の各入出力バス接続に対応するビット位置を含む。更に、BSR内に１つまたは複数のバス出力可能ビット位置を含む。BSRチェーン内の各バス出力可能ビット位置により、ICチップに接続されたバス（例えば、プロセッサバス、PCIバス、メモリバスなど）の全てまたは一部に出力することができる。したがって、例えば或バス出力可能ビット位置はPCIバスのアドレス・データバスに関連し、別のバス出力可能ビットはPCIバスの制御バスに関連する。各出力可能ビット位置を適当な値に設定すると、ICチップから全てのPCIバスのアドレス・データバスインターフェース回路（またはPCIバスの制御インターフェース回路など）の出力が可能になる。同様に、BSR内の出力可能ビット位置を不能値（ノン−エネーブル値）に設定すると、全PCIバスのアドレス・データバスインターフェースは高インピーダンスモードになり、信号がICチップからPCIアドレス・データバスインターフェースを通して外に伝送されなくなる。もちろん当業者が理解するように、BSRの多重の出力可能ビット位置を用いてバスインターフェースの一部を制御することができる。例えばPCIアドレス・データバスの16ビットを１つの出力可能の制御の下に置き、別の16ビットを別の出力可能の制御の下に置くなどしてよい。同様に、BSR内の１つの出力可能ビットを用いて全PCIバスを制御することもできる。
或ICチップをそのICチップに接続する１つまたは複数のバスから切り離す場合は、従来のJTAG試験回路はICチップ全体についてJTAG境界走査データレジスタ内の各ビット位置毎にデータをロードする。例えば、４本の64ビットバスがICチップに接続し、各バスがチップのBSR内に１つの関連するバス出力可能ビット位置を有する場合は、各バス出力可能ビット位置を設定する前に、全部で260個のBSR試験ビット（4x64＋４）をBSR内にロードする。最悪の場合は４本のバスが全て不能（ディスエーブル）になり、JTAGデータレジスタ内の残りの256位置は「ドントケア」値になる。データビットを４つの出力可能BSRビット位置だけでなくBSR内にもシフトインしなければならないので、従来のシステムでは効率が非常に悪い。このチップのBSRがPCカード上の他のチップのBSRと直列になっている場合は、この状態は悪化する。
ICデバイスをPCカード上の他の回路から切り離す別の方法は、JTAG命令レジスタ内にロードされている「HIGHZ」命令を用いて全チップを高インピーダンスモードに設定することである。この方法を用いるとバスを非効率に不能にするという上述の問題は緩和されるが、この方法は全てのバスを不能にするかまたはどのバスも不能にしないか、のどちらかである。
しかし応用によっては、ICデバイスの中の選択されたバスを可能にし、その他を不能にすることが必要である。例えば、多くのICデバイスはCMOS技術を用いており、CMOS回路は高インピーダンスモードにすると一般に浮動するので、所定のバス上の少なくとも１つの回路はバスを駆動できるようにすることが大切である。すなわち、或バス上の全てのCMOS回路を高インピーダンス状態にしたためにそのバスを或一定の状態に駆動する回路がない場合は、バスが高論理レベルと低論理レベルの中間で浮動する可能性がある。このような浮動状態は望ましくない。その理由は、CMOS入力が浮動入力信号を受けると２つの入力トランジスタが部分的にオンの状態になって電源が接地に接続するため、CMOSトランジスタが加熱されて破損する可能性があるからである。したがって、多重のバスに接続するICデバイスのバス接続を不能にするときは、ICデバイスに接続する残りの１本または数本のバスを駆動して、現在試験中でないバスが浮動しないようにすることが望ましい。すなわち、ICデバイスのバス接続を全て高インピーダンスモードにするかまたは全くしないJTAGシステムは、応用によっては適当でない。
発明の概要
この発明の１つの態様は集積回路（IC）への周辺接続を選択的に可能および不能にするJTAG試験回路構造である。この構造は境界走査ラッチレジスタを備え、境界走査ラッチレジスタは、周辺接続と電気通信を行いまた複数の出力可能ビット位置と電気通信を行う複数のデータビット位置を含む。各出力可能ビット位置を用いて、多数のデータビット位置に記憶されているデータビットの出力を可能にする。境界走査シフトレジスタは、シフトレジスタの内容をラッチレジスタに並列にロードできるようにラッチレジスタに接続する。シフトレジスタは、ラッチレジスタ内の複数のデータビット位置に対応するシフトレジスタデータビット位置を含む。シフトレジスタは、ラッチレジスタ内の出力可能ビット位置に対応するシフトレジスタ出力可能ビット位置を含む。シフトレジスタ出力可能ビット位置をシフトレジスタ内で論理的に近接させてグループ化し、シフトレジスタ出力可能ビット位置は、各出力可能ビット位置により可能になるデータビット位置の数より少ないシフトレジスタ位置だけ間隔をあける。スイッチング回路が第１状態にあるときは、スイッチング回路はシフトレジスタ出力可能ビット位置を通る論理的に近接した経路を与える。スイッチング回路が第２状態にあるときは、スイッチング回路はシフトレジスタ出力可能ビット位置とシフトレジスタデータビット位置を通る経路を与える。
好ましくは、シフトレジスタ出力可能ビット位置は直列に、また互いに論理的に近接させて接続する。また好ましくは、スイッチング回路はマルチプレクサ（以後はマックスとも呼ぶ）を備える。特に好ましい実施の形態では、スイッチング回路は１つのJTAG出力に接続する。
この発明の別の態様は、JTAG境界走査試験回路を用いて集積回路（IC）への周辺接続を選択的に可能および不能にする方法である。この方法は、直列境界走査シフトレジスタ内の出力可能要素とデータ試験ビット要素を接続して、出力可能要素とデータ試験ビット要素を通る第１経路を与え、また出力可能要素だけを通る第２経路を与える、ステップを含む。出力可能要素に記憶された情報はデータ試験ビット要素と周辺接続の間の電気通信を選択的に可能にする。この方法は、JTAG境界走査試験に用いるビットストリームを生成し、第１経路か第２経路かを選択し、生成されたビットストリームを直列境界走査シフトレジスタを通してシフトするステップを更に含む。
【図面の簡単な説明】
図１は、PCカード上の多重のバスとインターフェースする集積回路チップを含むプリント回路（PC）カードの簡単な略ブロック図である。
図２は、図１の集積回路チップの詳細を示す略ブロック図である。
図３は、JTAG回路がバスインターフェースを接続する方法を示すJTAG回路の詳細なブロック図である。
発明の詳細な説明
図１は、プリント回路（PC）カード100上で接続された多重集積回路デバイスを示す簡単なブロック図である。特定して述べると、第１集積回路（IC）チップ110は、PCIバス125とPCIインターフェース128を通して第2IC120に接続する。第1IC110は更に、プロセッサバス135とプロセッサインターフェース138を通して第3IC130と第4IC132に接続する。IC110は、メモリバス145とメモリインターフェース148を通してメモリ装置140に接続する。例えばIC120はPCI対PCIブリッジを備え、IC130と132は多重のプロセッサを備え、メモリ装置140はDRAMアレイを備える。
動作を説明すると、IC110はバス125、135、145を通してPC100内の種々の回路要素120、130、132、140と通信する。JTAGを用い、IC130からデータを出力してプロセッサバス135を試験することが望ましい場合は、IC110内の回路がJTAG試験を邪魔するのを防ぐために、IC110の出力をプロセッサバス135から切り離す必要がある。すなわち、IC110のプロセッサインターフェース138を高インピーダンスモードにして、そのJTAG入力ラッチがIC130からのJTAG出力試験データを捕らえることができるようにしなければならない。
前に簡単に述べたように、１つの方法はIC110全体を高インピーダンス状態にして、PCIインターフェース128もプロセッサインターフェース138もメモリインターフェース148も全て高インピーダンスモードにすることである。しかし、バス125かバス145をIC110で駆動する必要がある場合はこの方法は実行できない。すなわち、例えばIC120がCMOSデバイスであってPCIバス125とのインターフェースを有し、PCIバス125がやはり高インピーダンスモードであるかまたは入力信号である場合は、バス125を駆動する回路がないのでPCIバス125は浮動する。この場合は、プロセッサインターフェース138だけを高インピーダンスモードに設定し、PCIインターフェース128はPCIバス125を駆動できるようにする必要がある。上に述べたように、従来の方法でこれを行うには、JTAGデータレジスタ内のわずか２ビットの出力可能ビットを設定するのにJTAGデータレジスタに数百回のシフトを行う必要がある。
図２はこの発明に従って構成されたIC110の内部構成要素のいくつかを示す簡単なブロック図である。IC110内のJTAG境界走査チェーンおよび回路は前の回路の欠点を克服するよう特別に構成されている。特定して述べると、この発明のJTAG試験回路の構成は、JTAGのBSR内の各出力可能位置をつなぎあわせて（例えばJTAG境界走査データシフトレジスタ内の近接位置に）、インターフェース128、138、148のインピーダンスモードを制御するのに用いる出力可能ビットを必要最小時間でシフトする（他のBSR位置には一切シフトせずに）。
図２に示すように、JTAGデータ入力線（JTAG  DIN）200は出力可能データシフトレジスタ位置205に直接接続する。シフトレジスタ位置205はラッチ207に接続しており、該当する値が位置205にシフトインされるとラッチ207は位置205にシフトインされたデータビットをラッチする。ラッチ207は、PCIインターフェース128のJTAG試験出力可能線209に接続する。ラッチ207に記憶されたデータビットは線209を通してPCIインターフェース128に与えられ、JTAG試験モードのときは図２に示す例ではPCIバスインターフェース128全体の出力を可能または不能にする。しかし、容易に理解されるように、多重の出力可能ビットを用いればPCIバス125の出力部を選択的に制御することができる（これは他の全てのバスにも当てはまる）。データシフトレジスタ内の第２要素は位置205に直列に接続する出力可能位置210である（すなわち、位置210は位置205からシフトインされる次の位置である）。データレジスタ出力可能位置210はラッチ212にも接続し、ラッチ212は線214を通してプロセッサインターフェース138のJTAG試験出力可能に接続する。PCIバスインターフェース128と同様に、ラッチ212内の出力可能ビットを用いて、この例でJTAG試験モードのときはプロセッサバス135全体の出力を可能または不能にする。最後に、出力可能シフトレジスタ位置215は位置210に直列に接続する。したがって３つの出力可能シフトレジスタ位置205と210と215は互いに隣接している。出力可能位置215はラッチ217にも接続し、ラッチ217は線219を通してメモリバスインターフェース148のJTAG試験出力可能に接続する。この場合も、ラッチ217に保持されている出力可能ビットを用いて、JTAG試験モードのときはメモリバスインターフェース148全体を可能または不能にする。
BSR位置215の出力は２対１マルチプレクサ（2:1  マルチプレクサ）220の入力に接続し、またマルチプレクサ226とＤフリップフロップ225により形成されるBSR224内の第１要素に接続する。ここに用いるBSR224内の１つの位置はマルチプレクサ226の１つと、対応するＤフリップフロップ225を指定する。BSR224はJTAG境界走査データレジスタの一部であって、試験データをBSR出力ラッチレジスタ227に与え、更にPCIインターフェース128を通してPCIバス125の線に与える。PCIバス125からのデータは境界走査入力マルチプレクサ226に入力し、これを境界走査レジスタ225にロードして、試験入力データを集めることができる。データシフトレジスタ225とPCIバス125の接続については、図３を参照して後で詳細に説明する。シフトレジスタ位置215の出力をマルチプレクサ220とBSRセグメント224に接続することにより、線200から入力されたJTAGデータに２つの経路が与えられる。特定して述べると、インターフェース128、138、148のそれぞれに関連する出力可能ビットだけを制御したい場合は、最短のJTAG経路は線200、シフトレジスタ位置205と210と215、マルチプレクサ220を通して与えられる。しかしBSR全体を更新または標本化したい場合は、出力可能部（200、128、138、148）を通して試験データをシフトし、次にこれをBSRの残りの入出力部（すなわち、シフトレジスタ225、230、235）を通してシフトすることができる。次にこれをマルチプレクサ220の第２入力を通してシフトアウトする。マイクロプロセッサバス135とメモリバス145からのデータを境界走査入力マルチプレクサ231と236にそれぞれ入力する。マルチプレクサ226と同様に、マルチプレクサ231と236を境界走査シフトレジスタ230と235にそれぞれロードして試験入力データを集めることができる。このようにして、上述のJTAG接続により出力可能のためのBSRセグメントを互いに論理的に近接して電気的に接続することにより、各インターフェース128、138、148に関連する出力可能を効率よく制御して、出力可能を制御するBSR位置を他のJTAGのBSRセグメントから論理的に切り離すことができる。
もちろん当業者が理解するように、図２の構成は一例であって、出力可能BSR位置を近接してグループ化する他の構成もこの発明に用いることができる。更に、一連のマルチプレクサスイッチをBSR経路全体に散在させてデータレジスタ225、230、235のいくつかをバイパスさせてよい。このような修正は、例えば上に引用した文書（IEEE1149.1）に述べられている。また、シフトレジスタ225と同様に、シフトレジスタ230と235はラッチレジスタ232と237にそれぞれ並列にデータをロードすることができる。データラッチレジスタ227、232、237を用いて、PCIバス125、プロセッサバス135、メモリバス145にそれぞれ接続する回路を試験することができる。
図３は、ラッチレジスタ227とマルチプレクサ231とPCIインターフェース128を通る、データシフトレジスタ225とPCIバス125の接続の詳細を示すブロック図である。図３に示すように、線300を通してJTAG入力ビットをJTAGのBSR224の入力にシフトインし、線305を通してレジスタ225内の位置の出力をシフトアウトする。シフトレジスタ230でのデータビットのシフトは、JTAG制御論理310から線315を通して与えられるクロック信号の制御の下に行われる。制御論理310は、線312と314を通して試験クロックと試験モード信号をそれぞれ受ける。この技術でよく知られているように、制御論理310はDR_CLOCK出力315と、CAPTURE出力316と、UPDATE_OUTPUT信号320とUPDATE_DE信号317を与える。更新信号は別々（320と317）なので、短縮されたBSRモードにより出力可能だけを更新するときは227の中の試験出力データは変わらない。
DR_CLOCKの制御の下に全ての該当するJTAG試験データビットをデータシフトレジスタ225にシフトインした後、線320に与えられるUPDATE_OUTPUT信号の制御の下にデータはラッチ回路227に捕らえられる。すなわち、シフトレジスタ225内の各データビットはラッチレジスタ227に並列にロードされる。簡単のために図３では２つの接続パッドだけを示しており、PCIインターフェース回路128を通して出力パッドに接続する。
TAG境界試験回路毎にマルチプレクサを含み、JTAG試験ベクトルか、JTAGを用いないときにIC110の出力リード線に接続する通常の回路か、を選択する。したがって図３に示すように、ラッチされたデータレジスタ227内の各ビット位置は、それぞれの線332を通してマルチプレクサ330の第１入力にそれぞれ接続する。マルチプレクサ330の第２入力はそれぞれの線333を通してIC110内の通常の回路に接続する。JTAG命令レジスタ310の復号された出力により、各マルチプレクサ330の選択入力335は従来のJTAG試験モードか通常の動作モードかを選択する。各マルチプレクサ330の出力は、複数の双方向３状態バッファ340および345を含むPCIインターフェース128に入る。図３に示すように、出力バッファ340は各外部接続パッド350への出力路を与え、入力バッファ345は接続パッド350からICチップ110の内部の回路への入力路を与える。図３に示すように、線209は全ての３状態バッファ340に接続しており、線209に与えられる出力可能信号が活動化状態ににると、各バッファ340は高インピーダンスモードに入る。このように、IC110に接続するバスを効率的にまた選択的に高インピーダンスモードにすることができる。
この発明の実現に必須ではないが、パッド350は入力バッファ345を通してマルチプレクサ226の各要素に更に接続するので、入力パッド上のデータは標本化されてシフトレジスタ225にラッチされる。
この発明について詳細に説明したが、上の説明は単なる例であって制限するものではない。当業者が理解するように、この発明の精神と必須の特性から逸れることなく種々の修正を行うことができる。したがってこの発明の範囲は以下の請求の範囲を考慮して解釈されるものである。
【図１】
0003565863.tif 000002
【図２】
0003565863.tif 000003
【図３】
0003565863.tif 000004