(57)【要約】  TAPコントローラの自己再構成可能なデイジーチェーンは、主TAPコントローラおよび1つまたは複数の補助TAPコントローラを含む。デイジーチェーンは、主TAPコントローラが回路のテスト中に複数回デイジーチェーンを構成および再構成することができるという点で動的に自己再構成可能である。主TAPコントローラ内のデータレジスタは、特殊なJTAG命令に関連付けられる。この命令は、補助TAPコントローラのうちの選択された個々の補助TAPコントローラをイネーブルおよびディセーブルにするのに使用可能である。補助コントローラがイネーブルにされた場合、補助コントローラはTDIからTDOへのデイジーチェーンスキャン経路の一部にされる。補助コントローラがディセーブルにされた場合、補助コントローラはデイジーチェーンスキャン経路の一部にならない。ただし、ディセーブルにされたコントローラおよびそのレジスタはリセットされない。
2014528078.tif 000002
【特許請求の範囲】
【請求項１】
TDI(Test Data In)導体と、
TDO(Test Data Out)導体と、
TAP(Test Access Port)コントローラの自己再構成可能なデイジーチェーンとを備え、TAPコントローラの前記自己再構成可能なデイジーチェーンが、
第1のTAPコントローラと、
第2のTAPコントローラとを備え、第1のスキャン経路が、前記TDI導体から、前記第1のTAPコントローラから前記第1のTAPコントローラのTDOポートを介して、前記第2のTAPコントローラのTDIポートに延在し、前記第2のTAPコントローラから前記第2のTAPコントローラのTDOポートを介して、前記TDO導体に延在するように、前記第1のTAPコントローラが前記デイジーチェーンを第1の構成で構成することができ、第2のスキャン経路が、前記TDI導体から、前記第1のTAPコントローラを介するが、前記第2のTAPコントローラを介さずに、前記第1のTAPコントローラの前記TDOポートから前記TDO導体に延在するように、前記第1のTAPコントローラが前記デイジーチェーンを第2の構成で構成することができる、装置。
【請求項２】
前記第2のTAPコントローラが前記第1のスキャン経路の一部になるように、前記デイジーチェーンを前記第1の構成になるように構成することができ、次いで、前記第2のTAPコントローラが前記第2のスキャン経路の一部にならないように、前記デイジーチェーンが前記第2の構成で構成され、前記デイジーチェーンが前記第1の構成であるとき、前記第2のTAPコントローラがデータレジスタ出力信号を出力し、前記デイジーチェーンが前記第2の構成になるように再構成された後、前記第2のTAPコントローラが同じデータレジスタ出力信号を出力し続ける、請求項1に記載の装置。
【請求項３】
前記デイジーチェーンが前記第2の構成で構成されたとき、前記第2のTAPコントローラがリセットされない、請求項1に記載の装置。
【請求項４】
TAPコントローラの前記自己再構成可能なデイジーチェーンが、
前記第2のTAPコントローラの前記TDIポートを1)前記TDI導体、および2)前記第1のTAPコントローラの前記TDOポートのうちの選択された一方に結合するように前記第1のTAPコントローラによって制御可能な多重化回路をさらに備える、請求項1に記載の装置。
【請求項５】
TAPコントローラの前記自己再構成可能なデイジーチェーンが、
前記第2のTAPコントローラの前記TDIポートを1)前記TDI導体、および2)前記第1のTAPコントローラの前記TDOポートのうちの選択された一方に結合するように制御可能な多重化回路をさらに備え、前記第1のTAPコントローラがデータレジスタを含み、前記データレジスタが第1のデジタル値を記憶する場合、前記多重化回路が前記第2のTAPコントローラの前記TDIポートを前記TDI導体に結合するように制御され、一方、前記データレジスタが第2のデジタル値を記憶する場合、前記多重化回路が前記第2のTAPコントローラの前記TDIポートを前記第1のTAPコントローラの前記TDOポートに結合するように制御される、請求項1に記載の装置。
【請求項６】
TAPコントローラの前記自己再構成可能なデイジーチェーンが、
前記TDO導体を1)前記第1のTAPコントローラの前記TDOポート、および2)前記第2のTAPコントローラの前記TDOポートのうちの選択された一方に結合するように前記第1のTAPコントローラによって制御可能な多重化回路をさらに備える、請求項1に記載の装置。
【請求項７】
前記第1のTAPコントローラがデータレジスタを備え、第1の値が前記データレジスタに記憶され、前記データレジスタが更新される場合、前記デイジーチェーンが前記第1の構成で構成され、一方、第2の値が前記データレジスタに記憶され、前記データレジスタが更新される場合、前記デイジーチェーンが前記第2の構成で構成される、請求項1に記載の装置。
【請求項８】
前記装置が集積回路であり、前記TDI導体が前記集積回路の第1の端子であり、前記TDO導体が前記集積回路の第2の端子である、請求項1に記載の装置。
【請求項９】
TAPコントローラの前記自己再構成可能なデイジーチェーンが、
第3のTAPコントローラをさらに備え、前記第1の構成では、前記スキャン経路が、前記第2のTAPコントローラの前記TDOポートから、次いで前記第3のTAPコントローラを介して、前記TDO導体に延在し、前記第2の構成では、前記スキャン経路が、前記3のTAPコントローラを介して延在しない、請求項1に記載の装置。
【請求項１０】
TAPコントローラの前記自己再構成可能なデイジーチェーンが、前記第2の構成で最初に構成されるように起動する、請求項9に記載の装置。
【請求項１１】
第1のTAP(Test Access Port)コントローラと、
TDI(Test Date In)ポートおよびTDO(Test Data Out)ポートを有する第2のTAPコントローラと、
TDIポートおよびTDOポートを有する第3のTAPコントローラと、
前記第2のTAPコントローラの前記TDIポートおよび前記第2のTAPコントローラの前記TDOポートのうちの一方を前記第3のTAPコントローラの前記TDIポートに結合するように前記第1のTAPコントローラによって制御される第1の多重化回路と、
前記第2のTAPコントローラの前記TDOポートおよび前記第3のTAPコントローラの前記TDOポートのうちの一方をTDO導体に結合するように前記第1のTAPコントローラによって制御される第2の多重化回路と
を備える集積回路。
【請求項１２】
前記第1のTAPコントローラが、
ビット位置を有するデータレジスタを備え、第1のデジタル値が前記データレジスタにおける前記ビット位置に記憶される場合、前記第1の多重化回路が、前記第2のTAPコントローラの前記TDIポートを前記第3のTAPコントローラの前記TDIポートに結合するように制御され、一方、第2のデジタル値が前記データレジスタにおける前記ビット位置に記憶される場合、前記第1の多重化回路が、前記第2のTAPコントローラの前記TDOポートを前記第3のTAPコントローラの前記TDIポートに結合するように制御される、請求項11に記載の集積回路。
【請求項１３】
前記第1のTAPコントローラが、
命令レジスタをさらに備え、命令を前記命令レジスタにシフトし、次いで、前記第1のTAPコントローラに前記命令を実行させることによって、前記データレジスタにデータをロードすることができ、前記第1のTAPコントローラによる前記命令の実行により、前記データを前記データレジスタにシフトすることが可能になる、請求項12に記載の集積回路。
【請求項１４】
デジタル値を第1のTAP(Test Access Port)コントローラのデータレジスタに記憶するステップであって、前記第1のTAPコントローラおよび第2のTAPコントローラが、TAPコントローラの再構成可能なデイジーチェーンの一部である、ステップと、
前記デジタル値が第1のデジタル論理値である場合、TAPコントローラの前記再構成可能なデイジーチェーンを第1の構成で構成させるステップであって、前記第1の構成では、第1のスキャン経路が、TDI(Test Data In)導体から、前記第1のTAPコントローラから前記第1のTAPコントローラのTDO(Test Data Out)ポートを介して、第2のTAPコントローラのTDIポートに延在し、前記第2のTAPコントローラから前記第2のTAPコントローラのTDOポートを介して、TDO導体に延在する、ステップと、
前記データレジスタが第2のデジタル論理値を記憶する場合、TAPコントローラの前記再構成可能なデイジーチェーンを第2の構成で構成させるステップであって、前記第2の構成では、第2のスキャン経路が、前記TDI導体から、前記第1のTAPコントローラから前記第1のTAPコントローラのTDOポートを介して、前記第2のTAPコントローラを通過することなく、前記TDO導体に延在する、ステップと
を含む方法。
【請求項１５】
TAPコントローラの前記再構成可能なデイジーチェーンを前記第2の構成で構成させる前記ステップが、前記第2のTAPコントローラをリセットすることなく行われる、請求項14に記載の方法。
【請求項１６】
前記第2のTAPコントローラがデータレジスタを有し、前記第2のTAPコントローラがイネーブルにされたときに前記データレジスタが信号を出力し、TAPコントローラの前記再構成可能なデイジーチェーンを前記第2の構成で構成させる前記ステップが、前記第2のTAPコントローラの前記データレジスタによって出力された前記信号を妨害することなく、前記第2のTAPコントローラに、イネーブルにされることからディセーブルにされることに切り換えさせる、請求項14に記載の方法。
【請求項１７】
前記第1のTAPコントローラおよび第2のTAPコントローラが、前記TDI導体から前記TDO導体までの前記第1のスキャン経路にあるように、TAPコントローラの前記デイジーチェーンを前記第1の構成で構成し、次いで、前記第1のTAPコントローラが前記TDI導体から前記TDO導体までの前記第2のスキャン経路にあるが、前記第2のTAPコントローラが前記TDI導体から前記TDO導体までの前記第2のスキャン経路にないように、前記第2のTAPコントローラをリセットすることなく、TAPコントローラの前記デイジーチェーンを前記第2の構成で構成するステップをさらに含む、請求項14に記載の方法。
【請求項１８】
TAPコントローラの前記再構成可能なデイジーチェーンが、ただ1つのTAPコントローラが前記TDI導体から前記TDO導体に延在するスキャン経路に配置される構成で最初に構成されるように起動する、請求項14に記載の方法。
【請求項１９】
デイジーチェーンのTAP(Test Access Port)コントローラのうちの1つのデータレジスタの一部分に第1のデジタル値および第2のデジタル値のうちの一方を記憶することによって、前記TAPコントローラの前記デイジーチェーンを構成するステップを含み、前記データレジスタが複数のビット位置を含み、前記第1のデジタル値が前記データレジスタの前記一部分に記憶される場合、前記一部分に関連付けられたTAPコントローラが、TDI(Test Data In)導体からデイジーチェーンスキャン経路を介したTDO(Test Data Out)導体への前記デイジーチェーンスキャン経路に含まれ、一方、前記第2のデジタル値が前記データレジスタの前記一部分に記憶される場合、前記一部分に関連付けられた前記TAPコントローラが前記デイジーチェーンスキャン経路に含まれない、方法。
【請求項２０】
前記TDI導体が集積回路の端子であり、前記TDO導体が前記集積回路の端子であり、前記一部分が単一のビット位置および複数のビット位置からなる群から取られ、前記第1のデジタル値がシングルビット値およびマルチビット値からなる群から取られ、前記第2のデジタル値がシングルビット値およびマルチビット値からなる群から取られる、請求項19に記載の方法。
【請求項２１】
TAPコントローラの前記デイジーチェーンが、前記第1のデジタル値および前記第2のデジタル値のうちの一方を前記データレジスタの前記一部分にロードし、次いで、前記データレジスタで更新を実行することによって構成される、請求項19に記載の方法。
【請求項２２】
集積回路を製造する方法であって、
(a)第1のTAP(Test Access Port)コントローラを作製するステップと、
(b)TDI(Test Data In)ポートおよびTDO(Test Data Out)ポートを有する第2のTAPコントローラを作製するステップと、
(c)TDIポートおよびTDOポートを有する第3のTAPコントローラを作製するステップと、
(d)前記第2のTAPコントローラの前記TDIポートおよび前記第2のTAPコントローラの前記TDOポートのうちの一方を前記第3のTAPコントローラの前記TDIポートに結合するように前記第1のTAPコントローラによって制御可能な第1の多重化回路を作製するステップと、
(e)前記第2のTAPコントローラの前記TDOポートおよび前記第3のTAPコントローラの前記TDOポートのうちの一方をTDO導体に結合するように前記第1のTAPコントローラによって制御可能な第2の多重化回路を作製するステップとを含み、前記集積回路が集積回路作製プロセスを使用して製造されるとき、(a)から(e)が実質的に同時に行われる、方法。
【請求項２３】
(f)前記第2のTAPコントローラがリセットされないように、また、前記第2のTAPコントローラがフリーズされたときに前記第2のTAPコントローラのデータレジスタが妨害されないように、前記第2のTAPコントローラをフリーズすることができるフリーズ論理を作製するステップをさらに含み、前記第1のTAPコントローラのデータレジスタのビット位置が第1のデジタル論理値を記憶する場合、前記フリーズ論理が前記第2のTAPコントローラをフリーズし、一方、前記第1のTAPコントローラの前記データレジスタの前記ビット位置が第2のデジタル論理値を記憶する場合、前記フリーズ論理が前記第2のTAPコントローラをフリーズしない、請求項22に記載の前記集積回路を製造する方法。
【請求項２４】
複数のTAPコントローラと、
第1のデジタル値が前記TAPコントローラのうちの第1のTAPコントローラのデータレジスタの一部分に記憶される場合、前記一部分に関連付けられた前記TAPコントローラのうちの第2のTAPコントローラが、TDI導体からデイジーチェーンスキャン経路を介したTDO導体への前記デイジーチェーンスキャン経路に含まれ、一方、第2のデジタル値が前記第1のTAPコントローラの前記データレジスタの前記一部分に記憶される場合、前記第2のTAPコントローラが前記デイジーチェーンスキャン経路に含まれないように、前記複数のTAPコントローラを構成するための手段と
を備える装置。
【請求項２５】
前記手段が、前記第2のTAPコントローラが前記デイジーチェーンスキャン経路の一部であるとき、前記第2のTAPコントローラにデータレジスタ出力信号を出力させることができるように、また、前記第2のTAPコントローラが前記デイジーチェーンスキャン経路にないように前記第2のTAPコントローラを次いでディセーブルにすることができるように、また、前記第2のTAPコントローラがディセーブルにされた後、前記第2のTAPコントローラが前記データレジスタ出力信号を出力し続けるように、前記複数のTAPコントローラを構成するためのものである、請求項24に記載の装置。
【請求項２６】
前記手段が、前記第2のTAPコントローラがディセーブルにされた後、次いで前記第2のTAPコントローラをイネーブルにし、前記TDI導体から、前記第1のTAPコントローラを介し、前記第2のTAPコントローラを介して、前記TDO導体に延在するデイジーチェーンスキャン経路に含めることができるように、前記複数のTAPコントローラを構成するためのものである、請求項24に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、JTAG TAPコントローラならびに関連する回路要素および方法に関する。
【背景技術】
【０００２】
図1(従来技術)は、テストされるシステムの図である。このシステムは、プリント回路板6の導体によって相互接続された複数の集積回路2〜5を含むプリント回路板レベルシステム1である。一般に「JTAG」(Joint Test Action Group)と呼ばれるテストプロトコルおよびテスト機構が使用される。JTAGは、IEEE規格1149.1として規格化されている。図1のシステムの回路要素における欠陥は、集積回路内の回路要素または集積回路を相互接続するプリント回路板の導体および回路要素のいずれかに存在し得る。バウンダリスキャンレジスタとして知られるJTAG回路要素は、各集積回路上に提供される。このバウンダリスキャンレジスタは、集積回路のコア回路要素と集積回路の外部端子との間を通過する信号を遮断するのに使用可能である。テストモードでは、そのようなバウンダリスキャン回路要素に、集積回路端子からコア回路要素を切断させ、テスト信号をコア回路要素に駆動させ、コア回路要素によって生成されたテスト出力信号を読み取らせることができる。加えて、バウンダリスキャン回路要素は、ある集積回路上のバウンダリスキャン回路要素と別の集積回路上のバウンダリスキャン回路要素との間に延在するプリント回路板上の外部接続をテストするのに使用可能である。
【０００３】
各集積回路のバウンダリスキャン回路要素は、テストアクセスポート(Test Access Port)コントローラ(TAPコントローラ)によって制御される。集積回路の各々は、独自のバウンダリスキャン回路要素を制御するための独自のTAPコントローラを有する。TAPコントローラは、標準的なJTAG信号TMS、TCK、TRST、TDIおよびTDOを使用して、外部のJTAGテストデバッガ機能と通信する。TAPコントローラが通信し、制御されるこれらの信号を含むインターフェース全体は、テストアクセスポート(TAP)と呼ばれる。TDIは、Test Data Inを意味する。TDOは、Test Data Outを意味する。TMSは、Test Mode Selectを意味する。TCKは、Test Clockを意味する。TRSTは、Test Resetを意味する。
【０００４】
集積回路2のTAPコントローラ7は、端子8を介してTDI信号を受信し、端子9を介してTMS信号を受信し、端子10を介してTCK信号を受信し、端子11を介してTRST信号を受信し、かつ端子12を介してTDO信号を出力する。TAPコントローラ7に入るJTAG信号の適切な操作によって、TAPコントローラ7に、テストモードに入らせ、上記で説明したように内部コア回路要素を隔離させ、そのバウンダリスキャンレジスタを使用してテスト信号をコア論理に供給させ、そのバウンダリスキャンレジスタを使用してコア論理からテスト結果をキャプチャさせ、キャプチャされたテスト結果を外部のJTAGテストデバッガに出力させることができる。加えて、ある集積回路のバウンダリスキャン回路要素に、その端子のうちの1つからテスト信号を駆動させることができ、別の集積回路のバウンダリスキャン回路要素に、プリント回路板上の相互接続導体をテストするために、他方の集積回路の端子上で受信された信号をキャプチャさせることができる。集積回路2の端子14から集積回路3の端子15に延在する導体13は、テストすることができるそのような導体の例である。JTAGコネクタ16は、典型的には、プリント回路板6上に提供され、その結果として、外部のJTAGテストデバッガをプリント回路板に物理的に接続することができるので、外部のJTAGテストデバッガはTAPコントローラと通信することができる。
【０００５】
JTAG規格IEEE-1149.1において規定されているように、図1に示すように、TAPコントローラを「デイジーチェーン」で一緒に相互接続することができる。第1のTAPコントローラ7のTDIポートは、JTAGコネクタ16のTDI端子18に接続される。第1のTAPコントローラ7のTDOポート19は、第2のTAPコントローラ21のTDIポート20に接続される。第2のTAPコントローラ21のTDOポート22は、第3のTAPコントローラ24のTDIポート23に接続される。第3のTAPコントローラ24のTDOポート25は、第4のTAPコントローラ27のTDIポート26に接続され、第4のTAPコントローラ27のTDOポート28は、JTAGコネクタ16のTDO端子29に接続される。JTAGコネクタ16の端子18、30、31および32上のJTAG信号の適切な操作により、外部のJTAGテストデバッガは、TDIからTDOにデイジーチェーンされたTAPコントローラを介して、命令およびテストデータをシフトすることができる。同様に、様々な集積回路におけるJTAG回路要素によってテスト出力データをキャプチャすることができる。次いで、外部のJTAGテストデバッガは、同じTDIからTDOへのデイジーチェーン接続を介して、様々な集積回路からのこのテスト出力データをシフトすることができる。
【０００６】
また、JTAGデイジーチェーンは、単一の集積回路内の論理のブロックをテストするのに使用可能である。今日の集積回路は非常に大規模である場合があり、異なるグループの人々によって設計された回路要素の複数のブロックを含む場合がある。1つの会社によってブロックを設計することができ、次いで、その設計を別の会社に販売またはライセンス供与することができ、次いで、別の会社は、そのブロックを、さらに他の会社によって設計された他のブロックとともに、より大きい集積回路に組み込む。様々なブロックにおける異なる回路要素により、各ブロックは独自の特殊なテスト要件を有する場合がある。したがって、独自のTAPコントローラおよび独自の関連するカスタマイズされたテスト回路要素を有するようにブロックを設計するのが一般的である。次いで、TAPコントローラおよび特殊なテスト回路要素を含むブロック全体は、他の会社および企業実体が使用するための単一設計として提供される。そのようなブロックがより大きい設計に組み込まれ、より大きい集積回路の一部として作製されるとき、ブロックの回路要素がテストされる。TAPコントローラおよびブロックのカスタマイズされたテスト回路要素は、この目的で使用される。したがって、より大きい集積回路内のそのようなブロックは、図1の例におけるより大きいプリント回路板内の集積回路にほぼ相当するものとして概念化され得る。
【０００７】
図2(従来技術)は、回路要素34〜37の4つのそのようなブロックを含む集積回路33の図である。各ブロックは、独自のTAPコントローラおよび特殊なテスト回路要素を有する。TAPコントローラは、データおよび命令およびテスト出力データを、TDI端子38からTAPコントローラ39〜42のデイジーチェーンを介してTDO端子43まで延在する1つの長いスキャン経路を介してシフトすることができるように、デイジーチェーン方式で相互接続される。残念ながら、ブロックのいくつかは、そのようなJTAGデータおよび命令を比較的低いレートでのみシフトすることができるように設計される場合がある。他のブロックは、そのようなJTAGデータおよび命令をより高いレートでシフトすることができてもよい。たとえば、データをデイジーチェーンのすべてのTAPコントローラにロードする場合であって、TAPコントローラのうちの3つは15MHzでシフトすることができるが、1つのTAPコントローラは1MHzでしかシフトすることができない場合、デイジーチェーン全体のシフトレートは1MHzでのシフトに限定される。所望のシフトレートよりも遅いことにより、集積回路をテストするのに必要な全体の時間は、望ましくないほど大きい。
【０００８】
図3(従来技術)は、集積回路33のより詳細な図である。集積回路33は、構成可能なJTAGデイジーチェーン機能を有する。デイジーチェーンの構成可能な性質により、状況によっては、TAPコントローラのデイジーチェーンをより高いクロックレートでシフトすることができる。TAPコントローラ39〜42に加えて、集積回路33は、マルチプレクサ44〜47、モード端子48および49、デコーダ50、ならびにディセーブル回路51〜54を含む。マルチプレクサおよびディセーブル回路をどのように制御するかは、モード端子48および49上のマルチビットデジタル値によって決定される。
【０００９】
図4(従来技術)は、図3の回路の第1の構成を示す図である。マルチプレクサ44〜47は、図4の太線によって示されるように、TAPコントローラ39〜42を介したシリアルスキャン経路が、TDI端子38からTAPコントローラ39のTDI入力ポートに延在し、ブロックAのTAPコントローラ39からブロックAのTDO出力ポートを介して、マルチプレクサ44の上位データ入力リードに延在し、マルチプレクサ44からブロックBのTAPコントローラ40のTDI入力ポートを介し、ブロックBのTAPコントローラからTAPコントローラ40のTDO出力ポートを介して、マルチプレクサ45の上位データ入力リードに延在し、マルチプレクサ45からブロックCのTAPコントローラ41のTDI入力ポートを介するなどしてTDO出力端子43まで延在するように制御される。モード端子48および49上のマルチビットデジタル値は、デコーダ50が、この構成を設定するために、信号ENA、ENB、ENC、ENDおよびMSELを出力して、マルチプレクサ44〜47およびディセーブル回路51〜53を制御するものである。この構成では、TAPコントローラのいずれもディセーブルにされない。スキャン経路は、すべてのTAPコントローラを介してデイジーチェーン方式で延在する。
【００１０】
図5(従来技術)は、図3の回路の第2の構成を示す図である。この例では、TAPコントローラのうちの2つ、TAPコントローラ39およびTAPコントローラ41がディセーブルにされ、スキャン経路はこれらのTAPコントローラを介して延在しない。制御信号ENAおよびENCは、ディセーブル回路51および53をアクティブ化するようにアサートされる。ディセーブル回路51および53は、TAPコントローラ39および41に入るTMS、TCKおよびTRST信号をブロックし、その結果として、TAPコントローラ39および41上で受信されたこれらの信号は、デジタル論理ロー値で保持される。したがって、これらのTAPコントローラ39および41は、ディセーブルにされたTAPコントローラ39および41のデータレジスタの個々のビット位置がクリアされたか、ビット位置の出力信号がゼロにされるまたはそうでない場合は妨害されるようにその出力マルチプレクサが設定されたという意味で、リセット状態に保持される。ディセーブルにされたTAPコントローラ39および41のデータレジスタにおけるデータ保持は保証されない。第2の構成では、マルチプレクサ44〜47は、TAPコントローラを介したシリアルスキャン経路が、TDI端子38からマルチプレクサ44の下位データ入力に延在し、マルチプレクサ44からブロックBのTAPコントローラ40のTDI入力ポートを介し、ブロックBのTAPコントローラからTAPコントローラ40のTDO出力ポートを介して、マルチプレクサ45の上位データ入力リードに延在し、マルチプレクサ45からマルチプレクサ46の下位入力リードを介し、マルチプレクサ46からブロックDのTAPコントローラ42のTDI入力ポートを介し、ブロックDのTAPコントローラからマルチプレクサ47の下位入力リードを介し、マルチプレクサ47を介して、集積回路のTDO出力端子43まで延在するように、制御される。たとえば、15MHzのより速いレートでシフトすることができるTAPコントローラ40および42に比べて、TAPコントローラ39および41が1MHzのより遅いレートでしかシフトすることができない場合であって、この特定のケースでは実行されるテストがTAPコントローラ39および41の使用を必要としない場合、図5に示すように、TAPコントローラ39および41をスキャン経路から除くことによって、全体的なシフトレートを15MHzに上げることができる。
【発明の概要】
【課題を解決するための手段】
【００１１】
TAPコントローラの自己再構成可能なデイジーチェーンは、主TAPコントローラおよび1つまたは複数の補助TAPコントローラを含む。デイジーチェーンは、主TAPコントローラが回路のテスト中に複数回デイジーチェーンを構成および再構成することができるという点で動的に自己再構成可能である。一例では、主TAPコントローラにおけるデータレジスタは、特殊な「JTAGデイジーチェーン制御命令(JTAG Daisy-Chain Control Instruction)」(JDCCI)に関連付けられる。データレジスタは、補助TAPコントローラの各々に対するビット位置を有する。ビット位置が第1のデジタル値を記憶する場合、対応する補助TAPコントローラがイネーブルにされ、TDI導体(たとえば、TDI集積回路パッドまたはパッケージ端子)からTDO導体(たとえば、TDO集積回路パッドまたはパッケージ端子)まで延在する、TDIからTDOへのデイジーチェーンスキャン経路の一部になる。一方、ビット位置が第2のデジタル値を記憶する場合、対応する補助TAPコントローラがディセーブルにされ、TDIからTDOへのデイジーチェーンスキャン経路の一部にならない。ただし、ディセーブルにされた補助TAPコントローラおよびそのデータレジスタはリセットされない。ディセーブルにされた補助TAPコントローラのデータレジスタの内容および出力信号は、補助TAPコントローラをディセーブルにする行為によって、まったくシフト、クリア、リセットまたは妨害されない。補助TAPコントローラは、フリーズしていると言われる。したがって、そのようなディセーブルにされた補助TAPコントローラは、(データレジスタ出力信号の形での)テスト信号をテスト対象の回路に供給し続けることができる。この機構を使用して、遅いTAPコントローラを介してシフトする量を低減することによって、集積回路をテストするのに必要なテスト時間を低減することができる。
【００１２】
自己再構成可能なデイジーチェーンは、すべての補助TAPコントローラが最初にディセーブルにされるように起動する。起動後、主TAPコントローラは、補助TAPコントローラのうちの選択された補助TAPコントローラをイネーブルにし、イネーブルにされた補助TAPコントローラがTDIからTDOへのデイジーチェーンスキャン経路に含まれるようにデイジーチェーンを再構成するのに使用可能である。
【００１３】
一操作例では、選択された補助TAPコントローラをデイジーチェーンスキャン経路の一部とし、選択された補助TAPコントローラはそのデータレジスタがテスト信号をテスト対象の回路に供給するように設定される。次いで、選択された補助TAPコントローラは、主TAPコントローラに特殊なJDCCI命令を実行させることによってディセーブルにされる。選択された補助TAPコントローラをディセーブルにするために、デジタルロー値は、JDCCI命令用のデータレジスタにおける補助TAPコントローラに対応するビット位置にロードされる。デジタルロー値は、デジタルロー値をビット位置にシフトしてからデータレジスタ上で更新を実行することによって、ロードされる。このビット位置におけるデジタルロー値により、補助TAPコントローラをディセーブルにする。選択された補助TAPコントローラをこのようにしてディセーブルにすることは補助TAPコントローラまたはそのデータレジスタをリセットしないので、(選択された補助TAPコントローラの)データレジスタの内容および出力信号は妨害されない。データレジスタは、選択された補助TAPコントローラがディセーブルになっており、もはやTDIからTDOへのデイジーチェーンスキャン経路の一部ではなくても、テスト信号をテスト対象の回路に供給し続ける。
【００１４】
次に、再構成されたデイジーチェーンスキャン経路の一部である残りのTAPコントローラを使用して、テスト対象の回路をテストするために命令およびテストデータをシフトインおよびシフトアウトする。ディセーブルにされた補助TAPコントローラを、その他のTAPコントローラに比べて比較的遅いクロックレートでしかクロック制御することができない場合、補助TAPコントローラがデイジーチェーンスキャン経路の一部にならないように補助TAPコントローラをディセーブルにすることにより、テストで使用されるすべてのTAPコントローラがTDIからTDOへのスキャン経路の一部である従来のデイジーチェーンシステムに比べてより高いクロックレートで、デイジーチェーンスキャン経路をクロック制御することが可能になり得る。自己再構成可能なデイジーチェーンアーキテクチャを使用してTAPコントローラをクロック制御することができるレートを上げることによって、テスト対象の回路をテストするのに必要な全体的な時間を低減することができる。デイジーチェーンを制御するために使用されるJTAGテストアクセスポートを介して、主TAPコントローラのJDCCIデータレジスタにおける個々のビット位置を設定およびクリアすることによって、テストが行われるときに、補助TAPコントローラのうちの選択された補助TAPコントローラを動的にイネーブルおよびディセーブルにすることができる。
【００１５】
一例では、動的に自己再構成可能なデイジーチェーンアーキテクチャは、主TAPコントローラ、1つまたは複数の補助TAPコントローラ、およびトップレベル多重化モジュール(Top Level Multiplexing Module)(TLMM)と呼ばれる論理のブロックを含む。TLMMは、複数の多重化回路、出力多重化回路、および各補助TAPコントローラに対するTAPコントローラフリーズ論理のインスタンスを含む。TLMMは、ある集積回路設計から別の集積回路設計に移植することができる回路要素の事前に設計されたブロックとして提供され得る。
【００１６】
有利な一態様では、自己再構成可能なデイジーチェーンアーキテクチャは、より多くのTAPコントローラの追加に対応するように集積回路を設計するときに容易に拡張可能である。別のTAPコントローラを追加するために、別の多重化回路がTLMMに追加され、TLMMの出力多重化回路が追加のデータ入力リードを有するようになされ、主TAPコントローラにおけるJDCCI命令用のデータレジスタが追加のTAPコントローラを制御するための別のビット位置を有するようになされ、フリーズ論理の別のインスタンスがTLMMに追加される。次いで、追加のTAPコントローラが拡張されたTLMM回路に接続され、全体的な集積回路が作製される。デイジーチェーンアーキテクチャは任意の組合せのTAPコントローラを含むように動的に再構成可能であるので、どの特定の回路テスト中に、どの組合せのTAPコントローラを一緒に使用するかは、集積回路の作製後に決定することができる。
【００１７】
別の有利な態様では、主TAPコントローラを使用してTAPコントローラのデイジーチェーンを再構成することで、モード端子が不要になる。集積回路およびそのパッケージからモード端子を排除することで、製造コストを低減し、パッケージされた集積回路全体のコストを低減する。
【００１８】
上記は概要であり、したがって、必然的に簡略化、一般化および詳細の省略を含む。したがって、当業者は、概要が例示的なものにすぎず、いかなる形でも限定することを意図するものではないことを諒解されよう。特許請求の範囲によってのみ定義される、他の態様、本発明の特徴、および本明細書で説明するデバイスおよび/または方法の利点は、本明細書に記載する非限定的な詳細な説明で明らかとなろう。
【図面の簡単な説明】
【００１９】
【図１】JTAG TAPコントローラのデイジーチェーンを使用してテストされるプリント回路板システムの図(従来技術)である。
【図２】各ブロックが独自のTAPコントローラおよびテストされる回路要素を含む、回路要素の4つのブロックを含む集積回路の図(従来技術)である。
【図３】図2の集積回路のJTAGデイジーチェーン回路要素のより詳細な図(従来技術)である。
【図４】図3の回路の第1の構成を示す図(従来技術)である。
【図５】図3の回路の第2の構成を示す図(従来技術)である。
【図６】新規の一態様によるTAPコントローラの動的に自己再構成可能なデイジーチェーンを含む集積回路の図である。
【図７】図6の集積回路における動的に自己再構成可能なデイジーチェーンのより詳細な図である。
【図８】図6の集積回路の動的に自己再構成可能なデイジーチェーンの主TAPコントローラのより詳細な図である。
【図９】図7のトップレベル多重化モジュール(TLMM)のより詳細な図である。
【図１０】図9のTAPコントローラフリーズ論理の1つのインスタンスのより詳細な回路図である。
【図１１Ａ】TAPコントローラの自己再構成可能なデイジーチェーンを含む方法200のフローチャートである。
【図１１Ｂ】TAPコントローラの自己再構成可能なデイジーチェーンを含む方法200のフローチャートである。方法200では、起動後に最初にディセーブルにされた補助TAPコントローラのうちの1つ(補助TAPコントローラB)がその後にイネーブルにされ、TDIからTDOへのデイジーチェーンスキャン経路の一部となり、次いで、この補助TAPコントローラBがもはやTDIからTDOへのデイジーチェーンスキャン経路の一部でなくなるようにディセーブルにされる。
【図１２】TAPコントローラの動的に自己再構成可能なデイジーチェーンを含む方法300のフローチャートである。
【発明を実施するための形態】
【００２０】
図6は、新規な一態様による集積回路60の図である。集積回路60は、TDI端子61、TDO端子62、TMS端子63、TCK端子64、TRST端子65、回路要素66〜69の4つのブロック、およびここではトップレベル多重化モジュール(TLMM)70と呼ばれる回路要素の別のブロックを含む。ブロックA 66は、TAPコントローラ71を含む。ブロックB 67は、TAPコントローラ72を含む。ブロックC 68は、TAPコントローラ73を含む。ブロックD 69は、TAPコントローラ74を含む。TAPコントローラA 71は「主」TAPコントローラと呼ばれ、その他のTAPコントローラ72〜74は「補助」TAPコントローラと呼ばれる。ブロック66〜69の各々は、TAPコントローラに加えて、TAPコントローラによってテストされる他の機能回路要素(図示せず)を含む。各TAPコントローラは、データレジスタを有する。図6の矢印116〜119は、TAPコントローラ71〜74内のこれらのデータレジスタからそれぞれ出力されたデータレジスタ出力信号を表す。異なるブロック66〜69は、異なる会社または異なるグループの人々によって設計されてもよく、次いで、さらに別の会社またはグループの人々によって設計される全体的な集積回路設計に含まれてもよい。外部のJTAGテストデバッガ(図示せず)は、集積回路端子61〜65に結合することによって、TAPコントローラにアクセスし、TAPコントローラと通信することができる。
【００２１】
図7は、図6の集積回路60のより詳細な図である。図7の多重化回路75〜78、デコーダ79、およびTAPコントローラフリーズ論理80は、図6のTLMMブロック70の部分である。TAPコントローラ71はデータレジスタを含む。このデータレジスタは多くのビット位置を含む。データレジスタがTDIからTDOへのスキャン経路の一部となるとき、1つのデジタル値が各ビット位置に存在するように、デジタル値はこれらのビット位置を介してシフトされる。JTAGの分野で理解されるように、データレジスタ上で更新が実行された後、ビット位置におけるデジタル値がビット位置の対応するデータ出力上に現れるようになされる。図7では、導体81は、データレジスタの第1のビット位置104(図8参照)のデータ出力から延在する。この導体81は、第1のビット位置104に記憶されたデジタル値ENAを多重化回路75およびデコーダ79に供給する。同様に、導体82はデータレジスタの第2のビット位置105のデータ出力に結合され、第2のビット位置105に記憶されたデジタル値ENBを多重化回路76、デコーダ79およびTAPコントローラフリーズ論理80に供給する。同様に、導体83はデータレジスタの第3のビット位置106のデータ出力に結合され、第3のビット位置106に記憶されたデジタル値ENCを多重化回路77、デコーダ79およびTAPコントローラフリーズ論理80に供給する。同様に、導体84はデータレジスタの第4のビット位置107のデータ出力に結合され、第4のビット位置107に記憶されたデジタル値ENDをデコーダ79およびTAPコントローラフリーズ論理80に供給する。
【００２２】
この例における多重化回路75〜77は2対1のデジタルマルチプレクサであり、デジタル値ENA、ENBおよびENCはそれぞれ、マルチプレクサ75〜77の選択入力リードに供給される。デコーダ79はENA値、ENB値、ENC値およびEND値をデコードし、そこからマルチビットデジタル制御値MSELを生成する。MSELは導体85を介して出力多重化回路78の選択入力リードに供給される。したがって、TAPコントローラ71におけるデータレジスタに記憶されたデジタル値ENA、ENB、ENCおよびENDは、多重化回路75から78がどのようにTAPコントローラのデイジーチェーンを構成するかを決定する。
【００２３】
データレジスタに加えて、主TAPコントローラ71は、IEEE-1149.1によって規定された命令レジスタおよび有限状態機械(FSM)を含む。特殊な「JTAGデイジーチェーン制御命令」(JDCCI)を実行するときに有限状態機械がCapture-DR状態である場合、TAPコントローラ71は、導体98上で信号CAPTURE DR STATE JDCCIをアサートし、この信号はTAPコントローラフリーズ論理80に通信される。同様に、特殊なJDCCI命令を実行するときに有限状態機械がUpdate-DR状態である場合、TAPコントローラ71は導体99上で信号UPDATE DR STATE JDCCIをアサートし、この信号はTAPコントローラフリーズ論理80に通信される。参照番号Bで標示された3つの導体87は、3つの別個の導体上でTMS信号、TCK信号およびTRST信号をTAPコントローラ72に搬送する。これらの信号は、TAPコントローラB 72に入ると、それぞれ、TMSB、TCKBおよびTRSTBと称される。同様に、参照番号Cで標示された3つの導体88は、3つの別個の導体上でTMS信号、TCK信号およびTRST信号をTAPコントローラ73に搬送する。これらの信号は、TAPコントローラC 73に入ると、それぞれ、TMSC、TCKCおよびTRSTCと称される。参照番号Dで標示された3つの導体89は、3つの別個の導体上でTMS信号、TCK信号およびTRST信号をTAPコントローラ74に搬送する。これらの信号は、TAPコントローラD 74に入ると、それぞれ、TMSD、TCKDおよびTRSTDと称される。
【００２４】
TAPコントローラ71のTDIポートおよびTDOポートはそれぞれ、参照番号90および91で識別される。TAPコントローラ72のTDIポートおよびTDOポートはそれぞれ、参照番号92および93で識別される。TAPコントローラ73のTDIポートおよびTDOポートはそれぞれ、参照番号94および95で識別される。TAPコントローラ74のTDIポートおよびTDOポートはそれぞれ、参照番号96および97で識別される。
【００２５】
図8は、主TAPコントローラA 71のより詳細な図である。主TAPコントローラ71は、FSM100、命令レジスタ101、JDCCI命令用のデータレジスタ102、他の命令に関連付けられた他のデータレジスタ、命令パーサ103、および出力多重化回路115を含む。命令レジスタ101にロードすることができる複数の異なる命令がある。各命令に関連付けられた1つのデータレジスタがある。典型的な一操作では、命令は、TDIポート90を介して命令のビットを命令レジスタ101に連続的にシフトすることによって、FSM100の制御下で命令レジスタ101にロードされる。命令が命令レジスタにあり、命令レジスタが更新されると、命令パーサ103はどのような種類の命令がロードされたかを識別する。たとえば、命令が特殊なJDCCI命令である場合、対応する「Instr0Compare」回路はJDCCI命令を検出し、DReg0ShfitEn信号をアサートする。これはReg0のシフトを可能にする。この場合のReg0はJDCCI命令に関連付けられたデータレジスタ102である。次いで、データビットは、TDIポート90を介して、イネーブルにされたデータレジスタReg0に連続的にロードされる。すべてのデータビットがデータレジスタ102における対応するビット位置にシフトされると、パーサは、シフトインした新しいデジタルデータ値でデータレジスタが更新されるようにDReg0UpdateEn信号をアサートする。更新のときに、新たにシフトインしたデータ値も導体81〜84上に現れる。ビット位置104は、ENA値を記憶するデータレジスタ102におけるビット位置である。ビット位置105は、ENB値を記憶するデータレジスタ102におけるビット位置である。ビット位置106は、ENC値を記憶するデータレジスタ102におけるビット位置である。ビット位置107は、END値を記憶するデータレジスタ102におけるビット位置である。
【００２６】
図9は、図6のトップレベル多重化モジュール(TLMM)70のより詳細な図である。TAPコントローラフリーズ論理80は、実際は、1つが補助TAPコントローラ72〜74の各々にそれぞれ対応する、3つのTAP制御フリーズ論理回路108〜110を含む。TLMM70の回路要素は、この例では、その他のブロック66〜69とは別々にユニットとしてインスタンス化される論理の別個のブロックとして設計される。このようにして、TLMM70の論理は、独自の論理のブロックとして、作製された集積回路60の1つの領域に局在化される。
【００２７】
図10は、TAPコントローラフリーズ論理回路108のより詳細な回路図である。その他の2つのTAPコントローラフリーズ論理回路109および110は、図10に示す構造と類似の構造である。TAPコントローラフリーズ論理回路108は、TMSBとしてTAPコントローラ72のTMSポートに供給される信号TMSをゲート制御するための回路111を含む。また、TAPコントローラフリーズ論理回路108は、TCKBとしてTAPコントローラ72のTCKポートに供給される信号TCKをゲート制御するための回路112を含む。TAPコントローラフリーズ論理回路108は、TRSTBとしてTAPコントローラ72のTRSTポートに供給される信号TRSTをゲート制御するための回路113を含む。デイジーチェーンスキャン経路に組み込まれないTAPコントローラがリセットされる図2〜図5の従来技術の回路とは異なり、図6〜図10の集積回路では、スキャン経路に含まれないデイジーチェーンのTAPコントローラはリセットされず、むしろディセーブルにされるだけである。そのようなTAPコントローラはフリーズしていると言われるか、またはフリーズ状態であると言われる。したがって、デイジーチェーンスキャン経路の一部に結合されないTAPコントローラは、そのデータレジスタの内容を維持する。TAPコントローラフリーズ論理回路108は、TAPコントローラに入るTMS信号をデジタル論理レベルローに保持することによって、その関連するTAPコントローラをフリーズする。TAPコントローラに供給されたTMS信号がデジタルローである場合、TAPコントローラ内のFSMは状態を変えることができない。TAPコントローラに供給されたTMS信号がデジタル論理ハイにアサートされるのを防止することに加えて、TAPコントローラはクロック制御するのを防止される。回路112は、TAPコントローラに供給されているTCK信号をゲート制御し、TAPコントローラに供給されているTCK信号をデジタル論理ローに保持する。ディセーブルにされたTAPコントローラがクロック制御されるのを防止することは電力消費を低減し、TAPコントローラのFSMが状態を変えることも防止する。TAPコントローラがハイTMS信号を受信するのを防止することに加えて、および、TAPコントローラがクロック制御されるのを防止することに加えて、ディセーブルにされたTAPコントローラはリセットされることも防止される。図10の例では、ENBがデジタル論理ローであるとき、多重化回路113はTRST信号がTAPコントローラBのTRSTポートに入るのをブロックするが、むしろTAPコントローラのTRSTポートをデジタル論理ハイに結合する。TRSTはアクティブローである。TAPコントローラBがディセーブルにされているとき(ENBがローであるとき)、TAPコントローラBに供給された信号TRSTBは非アクティブデジタル論理ハイ値に保持される。
【００２８】
デイジーチェーンスキャン経路から外れて構成される補助TAPコントローラをフリーズすることは、そのようなコントローラを強制的にリセットすることに比べて利点を有する。すべてのTAPコントローラ71〜74がテストを実行する必要がある例を考える。TAPコントローラのうちの1つであるTAPコントローラBは1MHzでしかクロック制御することができないが、その他のTAPコントローラA、CおよびDはより速い15MHzでクロック制御することができる。上記で説明した自己再構成可能なデイジーチェーン回路機構を使用して、デイジーチェーンスキャン経路が主TAPコントローラAおよび低速のTAPコントローラBのみを含むようにデイジーチェーンが構成される。命令およびデータは、TAPコントローラBが必要なテスト信号をテストされる回路要素に供給するように、この低速のTAPコントローラBに遅いレートでシフトされる。このTAPコントローラBが必要なテスト信号を出力するようにセットアップされると、デイジーチェーンスキャン経路がその他のTAPコントローラA、CおよびDを含み、低速のTAPコントローラBを含まないように、自己再構成可能なデイジーチェーンが再構成される。次いで、より速いクロックを使用して、すでにセットアップされたより遅いTAPコントローラBを妨害することなく、より速いTAPコントローラA、CおよびDに命令およびデータをロードすることができる。より速いTAPコントローラによってキャプチャされたテストデータを、より遅いTAPコントローラBを妨害することなく、スキャン経路から外れて連続的にシフトすることができる。この例では、すべてのTAPコントローラがテストで使用される。より速いTAPコントローラA、CおよびDを多く行使することが実行されるテストに含まれる場合、テストをセットアップし、テストを実行し、回路からテスト結果を読み取るのに必要な全体的な時間は、最も遅いTAPコントローラのクロックレートによってすべてのTAPコントローラをクロック制御しなければならない従来の状況に比べて、はるかに低減され得る。
【００２９】
ただし、選択されたTAPコントローラをフリーズすることの上記の説明は、多少簡略化したものである。ディセーブルにされたTAPコントローラが状態を変えることができるようにクロック制御される3つの状態がある。
【００３０】
第1の状態は、主TAPコントローラにJDCCI命令がロードされてデイジーチェーンを再構成するとき、補助TAPコントローラがTest-Logic-Reset状態であるときに起動した後の状態である。主TAPコントローラの命令レジスタにJDCCI命令をロードした後、また、命令レジスタを更新した後に、JDCCI命令に対応する主TAPコントローラのデータレジスタにデータをロードする。これを行うために、主TAPコントローラはSelect-DR状態に遷移してからCapture-DR状態に遷移する。JDCCI命令がロードされたときに主TAPコントローラがCapture-DR状態であると、主TAPコントローラによって出力されたCAPTURE DR STATE JDCCIデジタル信号はデジタルハイである。補助TAPコントローラのフリーズ論理ブロックにおけるORゲートは、そのそれぞれの補助TAPコントローラにTCKを渡すことを可能にする。すべての補助TAPコントローラに対してTMS=0である。したがって、すべての補助TAPコントローラは、所望される場合、後でイネーブルにすることができるように、Test-Logic-Reset状態からRun-Test-Idle状態に遷移する。
【００３１】
第2の状態は、イネーブルにされることになる、ディセーブルにされたTAPコントローラがある状態である。JDCCI命令がロードされたときに主TAPコントローラのFSMがUpdate-DR状態の最中であると、次のサイクルでデジタル論理ハイであるUPDATE DR STATE JDCCIの結果として、(イネーブルにされることになる補助TAPコントローラを含む)すべての補助TAPコントローラにTCKが供給される。この次のTCKサイクルの立上りエッジにおいて、ディセーブルにされたTAPコントローラ(イネーブルにされることになるTAPコントローラ)にTMS=1が供給されているので、イネーブルにされることになるTAPコントローラは、主TAPコントローラとともに、Run-Test-Idle状態からSelect-DR状態に遷移する。実際、すべての補助TAPコントローラはこのときにTCKトグルを受信するが、イネーブルにされるまたはイネーブルにされることになる選択された補助TAPコントローラのみにTMS=1が供給されるので、そのような選択されたTAPコントローラのみがこのときに状態を遷移する。(主TAPコントローラのJDCCIレジスタにおける)イネーブルビットが設定されていないその他の補助TAPコントローラにはTMS=1が供給されず、これらの補助TAPコントローラは状態を遷移しない。
【００３２】
第3の状態は、すでにイネーブルにされたTAPコントローラがディセーブルにされている状態である。(補助TAPコントローラをディセーブルにするために)JDCCI命令がロードされたときに主TAPコントローラのFSMがUpdate-DR状態であると、デジタル論理ハイであるUPDATE DR STATE JDCCIにより、(ディセーブルにされることになる補助TAPコントローラを含む)すべての補助TAPコントローラにTCKが供給される。このとき、ディセーブルにされたTAPコントローラおよびディセーブルにされることになる補助TAPコントローラにTMS=0が供給される。イネーブルにされたTAPコントローラにTMS=1が供給される。よって、UPDATE DR STATE JDCCIがデジタル論理ハイにアサートされ、すべての補助TAPコントローラがクロック制御されると、ディセーブルにされることになる(TMS=0を有する)TAPコントローラのみがUpdate-DR状態からRun-Test-Idle状態に遷移する。
【００３３】
図11のフローチャートは、TAPコントローラBがデイジーチェーンスキャン経路に含まれるように、ディセーブルにされたTAPコントローラBをイネーブルにし、次いで、TAPコントローラBがフリーズされ、デイジーチェーンスキャン経路に含まれないように、そのTAPコントローラBをディセーブルにする方法200を示す。IEEE-1149.1規格は、TAPコントローラがTest-Logic-Reset状態に起動することを規定している。図11の例では、すべてのTAPコントローラは最初は電源供給されておらず、その命令およびデータレジスタはゼロ値を含む。起動(ステップ201)後、すべてのTAPコントローラA〜DはTest-Logic-Reset状態に入る(ステップ202)。主TAPコントローラAのデータレジスタにおけるすべてのビット位置がゼロを含むので、デイジーチェーンスキャン経路が主TAPコントローラA 71のみを含むように、多重化回路75〜78はこのデフォルト状態で制御される。情報がTDIからTDOにシフトされた場合、情報は主TAPコントローラA 71のみを通ることになる。このTest-Logic-Reset状態において、TMSがデジタル1に設定された場合、TAPコントローラA 71はTest-Logic-Reset状態のままになる。TMSがデジタル0に設定され、TCKが生じた場合、TAPコントローラ71はRun-Test-Idle状態に移動する。したがって、TAPコントローラの自己再構成可能なデイジーチェーンは、そのデイジーチェーンを介した、第1のデイジーチェーンのTDIからTDOへのスキャン経路が主TAPコントローラA 71を通り、任意の他のTAPコントローラを通ることができないように、起動する。
【００３４】
次に(ステップ203)、主TAPコントローラA 71がRun-Test-Idle状態に遷移するように、TMS端子およびTCK端子上の信号が操作される。すべてのその他のTAPコントローラB〜DはTest-Logic-Reset状態のままである。このとき、ENB信号、ENC信号およびEND信号は依然としてデジタル0であるので、命令はその他のTAPコントローラB〜Dにロードされない。その他のTAPコントローラ72〜74のフリーズ論理80における多重化回路112は、これらの他の補助TAPコントローラがクロック制御されるのを防止する。したがって、主TAPコントローラA 71のみがRun-Test-Idle状態に遷移する。この時点で、主TAPコントローラA 71は命令をロードする準備ができているので、デイジーチェーンを再構成することができる。デイジーチェーンに再構成させる命令は特殊なJDCCI命令である。
【００３５】
特殊なJDCCI命令をロードするために、主TAPコントローラAは、2つのサイクルでTMSを1に設定することによって、Select-IR状態に遷移させられる(ステップ204)。次いで、TMSは1つのサイクルで0に設定されて、主TAPコントローラAをCapture-IR状態に移動する(ステップ205)。端子63上のTMS信号の変化は、フリーズ論理80によって、ディセーブルにされたTAPコントローラB〜Dに到達するのをブロックされる。次いで、端子63上のTMS信号は1つのサイクルで0に設定されて、主TAPコントローラAをShift-IR状態に移動する(ステップ206)。次いで、TMSはShift-IR状態で0に設定され、主TAPコントローラAはクロック制御されて、命令をその命令レジスタにシフトする。シフトインされたビットはJDCCI命令のビットである。JDCCI命令を主TAPコントローラAの命令レジスタにシフトインした後、TMSは2つのサイクルで1に設定される。このことは主TAPコントローラAをUpdate-IR状態に遷移させる(ステップ207)。命令レジスタの更新後、主TAPコントローラAがRun-Test-Idle状態に戻る(ステップ208)ように、TMSは1つのサイクルで0に設定される。
【００３６】
次に、JDCCI命令に関連付けられたデータレジスタがロードされる。端子63上のTMS信号は1つのサイクルで1に設定される。端子63上のTMS信号の変化は、フリーズ論理80によって、ディセーブルにされた補助TAPコントローラB〜Dに到達するのを依然としてブロックされる。デジタル論理1へのTMSの変化は、主TAPコントローラAをSelect-DR状態に移動させる(ステップ209)。この時点で、主TAPコントローラAのFSMは、現在ロードされている命令に関連付けられた、そのデータレジスタをロードすることを選択する。次いで、TMSは2つのサイクルでデジタル論理0に設定されて、主TAPコントローラAをCapture-DR状態に遷移する(ステップ210)。
【００３７】
JTAGデイジーチェーンにおけるイネーブルにされたすべてのTAPコントローラは同じ状態でなければならず、外部のJTAGテストデバッガがTAPインターフェースを介してデイジーチェーンスキャン経路を適切に制御することができるようにするために、状態から状態へ一緒に移動しなければならない。補助TAPコントローラがTest-Logic-Reset状態からRun-Test-Idle状態に遷移するように、ORゲート114(図10参照)により、Capture-DR状態の間(JDCCI命令の実行の終了時に、主TAPコントローラがCapture-DR状態であるとき)、補助TAPコントローラをクロック制御することができる。すべての補助TAPコントローラは、そのバージョンのORゲート114を介してTCK信号を受信する。補助TAPコントローラへのTCKの遷移は、TAPコントローラ(この例ではTAPコントローラB)をイネーブルにして、TAPコントローラAと同じ状態にし、その結果として、その後、TAPコントローラAとTAPコントローラBの両方が、同じデイジーチェーンスキャン経路で一緒に機能することができる。
【００３８】
次に、TMSは0に設定されて、主TAPコントローラAをShift-DR状態に遷移する(ステップ211)。次いで、データはJDCCI命令用のデータレジスタにシフトインされる。イネーブルにされることになる補助TAPコントローラBに対応するデータレジスタにおけるビット位置は、デジタル論理1値に設定される。データがJDCCI命令用のデータレジスタの最終ビットにシフトインされると、TMSは2つのサイクルで1に設定される。このことは主TAPコントローラのFSMにUpdate-DR状態に遷移させ(ステップ212)、データレジスタを更新させる。更新により、データレジスタにおける対応するビット位置にシフトインされたENA値、ENB値、ENC値およびEND値が導体81〜83上に現れる。このとき、補助TAPコントローラBがイネーブルにされる。TAPコントローラBをイネーブルにするまたはTAPコントローラBをデイジーチェーンスキャン経路にパッチするのに、いかなる追加の命令も必要としない。加えて、ステップ212において、主TAPコントローラAによって出力されたUPDATE DR JDCCI信号はデジタルハイであるので、すべての補助TAPコントローラはTCKを受信する。このとき、イネーブルにされることになるTAPコントローラBに1のTMSが供給されるので、TAPコントローラBはRun-Test-Idle状態からSelect-DR状態に遷移する。この例では、TAPコントローラCおよびDはイネーブルにされず、TMS=1を受信せず、したがって、その後はRun-Test-Idle状態のままである。次いで、TMSは1つのサイクルで0に設定される。このことにより、主TAPコントローラAはRun-Test-Idle状態に戻る(ステップ213)。
【００３９】
この時点で、TAPコントローラのデイジーチェーンは、TDIからTDOへのデイジーチェーンスキャン経路が、TDI端子61から主TAPコントローラAのTDIポート90に延在し、主TAPコントローラAから主TAPコントローラAのTDOポート91を介して、多重化回路75の上位入力リードに延在し、多重化回路75から補助TAPコントローラBのTDIポート92を介し、補助TAPコントローラBからTDOポート93を介し、出力多重化回路78を介して、TDO端子62に延在するように構成される。補助TAPコントローラCおよびDはディセーブルにされたままであり、スキャン経路にはない。
【００４０】
図11の残りの部分は、デイジーチェーンスキャン経路がもはやフリーズされたTAPコントローラBを通過しないように、TAPコントローラBをフリーズし、TAPコントローラBを切断するために、どのようにデイジーチェーンを再構成することができるかについて記載している。最初に、ステップ214〜217において、JDCCI命令が主TAPコントローラAの命令レジスタにロードされる。この動作は、スキャン経路が主TAPコントローラに加えて補助TAPコントローラBを通過することを除き、ステップ204〜207に関して上記で説明したものと同じである。ただし、ここでは、JDCCI命令を主TAPコントローラAの命令レジスタにロードすることに注目する。主TAPコントローラAにおける命令レジスタを更新し、Run-Test-Idle状態を通過した(ステップ218)後、補助TAPコントローラBをディセーブルにすることができるように、JDCCI命令に関連付けられた(主TAPコントローラAにおける)データレジスタにデータ値がロードされる。選択、キャプチャ、シフトおよび更新のステップ219〜222は、ロードされたデータ値およびステップ222におけるディセーブルにされたばかりのTAPコントローラBの追加のクロッキングを除き、上記で説明した選択、キャプチャ、シフトおよび更新のステップ209〜212に類似している。ステップ222において、すべての補助TAPコントローラは、(CAPTURE DR STATE JDCCIがハイであるために)JDCCI命令がロードされたときに主TAPコントローラAがUpdate-DR状態であると、追加のTCKを受信するが、ディセーブルにされることになる補助TAPコントローラBは0のTMS値を有する。このとき他の補助TAPコントローラがイネーブルにされていた場合、そのTMS値は1になる。この例では、その他のTAPコントローラCおよびDがディセーブルにされている。したがって、そのTMS値は0である。(ステップ222において)補助TAPコントローラがクロック制御されると、補助TAPコントローラBは状態をUpdate-DR状態からRun-Test-Idle状態に遷移する。その他のディセーブルにされたTAPコントローラCおよびDはすでにRun-Test-Idle状態になっており、Run-Test-Idle状態のままである。このとき、ディセーブルにされている補助TAPコントローラBがクロック制御されなかった場合、ディセーブルにされている補助TAPコントローラBはUpdate-DR状態にとどまったままになる。
【００４１】
ステップ222の更新が行われると、TAPコントローラBがディセーブルにされる。TAPコントローラのデイジーチェーンが構成されるので、TDIからTDOへのデイジーチェーンスキャン経路は、TDI端子61から主TAPコントローラAのTDIポート90に延在し、主TAPコントローラAから主TAPコントローラAのTDOポート91を介し、出力多重化回路78を介して、TDO端子62に延在する。ステップ222の後、主TAPコントローラAに1のTMS値が供給される。したがって、主TAPコントローラAはSelect-DR状態に移動するが、すべての補助TAPコントローラB〜Dはディセーブルにされ、0のTMS値を有し、Run-Test-Idle状態になる。補助TAPコントローラBが今ではディセーブルにされ、もはやデイジーチェーンスキャン経路になくても、そのデータレジスタは、補助TAPコントローラBがディセーブルにされる直前に記憶した値を依然として記憶している。TAPコントローラBがディセーブルにされ、デイジーチェーンスキャン経路から外されるとき、ディセーブルにされたTAPコントローラBのデータレジスタの内容および出力は、いかなる形でもシフト、クリア、リセットまたは妨害されない。
【００４２】
したがって、JDCCI命令を実行し、選択されたTAPコントローラに対応するデータレジスタでビットをデジタル論理1に設定することによって、TAPコントローラのうちの選択された1つまたは複数をイネーブルにし、デイジーチェーンスキャン経路の一部にすることができる。JDCCI命令のデータレジスタを更新する際、多重化回路75〜78は、選択されたTAPコントローラがデイジーチェーンスキャン経路に含まれるように制御される。また、デイジーチェーンスキャン経路から切り離されるように、補助TAPコントローラのうちの選択された1つまたは複数をディセーブルにすることができる。選択された補助TAPコントローラをこのようにしてディセーブルにするために、JDCCI命令が実行され、選択された補助TAPコントローラに対応するデータレジスタにおけるビットがデジタル論理0に設定される。JDCCI命令のデータレジスタを更新する際、多重化回路75〜78は、デイジーチェーンスキャン経路がディセーブルにされたTAPコントローラをバイパスするように制御される。ディセーブルにされたTAPコントローラはリセットされず、むしろ、そのデータレジスタの内容をそのままにするようにフリーズされる。
【００４３】
主TAPコントローラがディセーブルになり、もはやTDIからTDOへのデイジーチェーンスキャン経路の一部ではなくなるように、TAPコントローラの動的に自己再構成可能なデイジーチェーンを自己構成することができることに留意されたい。このとき、TDIからTDOへのデイジーチェーンスキャン経路は他のイネーブルにされた補助TAPコントローラを介して延在するが、主TAPコントローラを介して延在しない。TAPコントローラの動的に自己再構成可能なデイジーチェーンがこの構成になると、主TAPコントローラが再びイネーブルにされるまで、主TAPコントローラはもはやデイジーチェーンを再構成するのに使用できない。主TAPコントローラを再びイネーブルにする2つの方法がある。第1に、集積回路をパワーサイクルすることができる。パワーオンリセットで、主TAPコントローラにおけるJDCCIデータレジスタを含む、すべての論理がリセットされる。第2に、ATPG TESTモードでTRSTをハイにアサートすることができる。これは、主TAPコントローラにおけるJDCCIデータレジスタを含む、集積回路におけるすべてのテスト論理をリセットする(すなわち、ATPG TESTモードでMODEピンをTRST=1にする)。
【００４４】
一例では、多数のTAPコントローラを再構成可能に相互接続して再構成可能なデイジーチェーンを形成することを可能にするのに必要なすべての論理は、回路要素のなかの単一の中心に位置するトップレベル多重化モジュール(TLMM)ブロックに提供される。全体的な集積回路の設計において、図6に示すように、様々なブロックのTAPコントローラは、単にTLMM入力および出力に接続される。このモジュール式のTLMMアーキテクチャは、さらなるTAPコントローラの追加に対応するように容易に拡張可能である。別のTAPコントローラを追加するために、別の多重化回路(多重化回路75〜77など)が追加され、出力多重化回路78が追加のデータ入力リードを有するようになされ、JDCCI命令用のデータレジスタが追加のTAPコントローラを制御するための別のビット位置を有するようになされ、フリーズ論理の別のインスタンス(フリーズ論理回路108〜110など)が追加される。同じTLMM回路ブロックは、他のタイプのブロックおよびTAPコントローラの異なる組合せを含む、多くの異なる集積回路設計で使用可能である。
【００４５】
図12は、TAPコントローラの動的に自己再構成可能なデイジーチェーンを含む方法300のフローチャートである。第1のステップ(ステップ301)において、デジタル値は、デイジーチェーンの第1のTAPコントローラにおけるビット位置に記憶される。ビット位置は、自己再構成可能なデイジーチェーンの第2のTAPコントローラに関連付けられる。一例では、デジタル値は、特殊なJDCCI命令を第1のTAPコントローラの命令レジスタにロードし、特殊なJDCCI命令を実行し、JDCCI命令に関連付けられたデータレジスタにおけるビット位置に所望のデジタル値をロードし、次いでデータレジスタを更新することによって記憶される。次に、ビット位置に記憶されたデジタル値(ステップ302)がデジタル1である場合、自己再構成可能なデイジーチェーンは第1の構成で構成される(ステップ330)。第1の構成では、第1のTAPコントローラと第2のTAPコントローラの両方がTDIからTDOへのデイジーチェーンスキャン経路にある。一方、ビット位置に記憶されたデジタル値(ステップ302)がデジタル0である場合、自己再構成可能なデイジーチェーンは第2の構成で構成される。第2の構成では、第1のTAPコントローラはTDIからTDOへのデイジーチェーンスキャン経路にあるが、第2のTAPコントローラはそのスキャン経路にない。第2のTAPコントローラはディセーブルにされるが、リセットされない。第2のTAPコントローラのデータレジスタによって出力されたデータレジスタ出力信号は、再構成可能なデイジーチェーンが第2の構成になったとき、妨害または変更されない。
【００４６】
教育上の目的で、いくつかの特定の実施形態について上記で説明したが、本特許文献の教示は一般的な適用性を有し、上記で説明した特定の実施形態に限定されない。したがって、以下に示す特許請求の範囲から逸脱することなく、説明した特定の実施形態の様々な特徴の様々な変更、適応、組合せを実施することができる。
【符号の説明】
【００４７】
1  プリント回路板レベルシステム
2  集積回路
3  集積回路
4  集積回路
5  集積回路
6  プリント回路板
7  第1のTAPコントローラ
8  端子
9  端子
10  端子
11  端子
12  端子
13  導体
14  端子
15  端子
16  JTAGコネクタ
17  第1のTAPコントローラ
18  端子
19  TDOポート
20  TDIポート
21  第2のTAPコントローラ
22  TDOポート
23  TDIポート
24  第3のTAPコントローラ
25  TDOポート
26  TDIポート
27  第4のTAPコントローラ
28  TDOポート
29  TDO端子
30  端子
31  端子
32  端子
33  集積回路
34  回路要素
35  回路要素
36  回路要素
37  回路要素
38  TDI端子
39  TAPコントローラ
40  TAPコントローラ
41  TAPコントローラ
42  TAPコントローラ
43  TDO端子
44  マルチプレクサ
45  マルチプレクサ
46  マルチプレクサ
47  マルチプレクサ
48  モード端子
49  モード端子
50  デコーダ
51  ディセーブル回路
52  ディセーブル回路
53  ディセーブル回路
54  ディセーブル回路
60  集積回路
61  TDI端子
62  TDO端子
63  TMS端子
64  TCK端子
65  TRST端子
66  回路要素、ブロックA
67  回路要素、ブロックB
68  回路要素、ブロックC
69  回路要素、ブロックD
70  トップレベル多重化モジュール(TLMM)
71  主TAPコントローラ
72  補助TAPコントローラ
73  補助TAPコントローラ
74  補助TAPコントローラ
75  多重化回路
76  多重化回路
77  多重化回路
78  多重化回路
79  デコーダ
80  TAPコントローラフリーズ論理
81  導体
82  導体
83  導体
84  導体
85  導体
87  導体
88  導体
89  導体
90  TDIポート
91  TDOポート
92  TDIポート
93  TDOポート
94  TDIポート
95  TDOポート
96  TDIポート
97  TDOポート
98  導体
99  導体
100  有限状態機械(FSM)
101  命令レジスタ
102  命令レジスタ
103  命令パーサ
104  第1のビット位置
105  第2のビット位置
106  第3のビット位置
107  第4のビット位置
108  TAP制御フリーズ論理回路
109  TAP制御フリーズ論理回路
110  TAP制御フリーズ論理回路
111  回路
112  回路
113  回路
114  ORゲート
115  出力多重化回路
116  矢印
117  矢印
118  矢印
119  矢印
200  方法
300  方法
【図１】
2014528078.tif 000003
【図２】
2014528078.tif 000004
【図３】
2014528078.tif 000005
【図４】
2014528078.tif 000006
【図５】
2014528078.tif 000007
【図６】
2014528078.tif 000008
【図７】
2014528078.tif 000009
【図８】
2014528078.tif 000010
【図９】
2014528078.tif 000011
【図１０】
2014528078.tif 000012
【図１１Ａ】
2014528078.tif 000013
【図１１Ｂ】
2014528078.tif 000014
【図１２】
2014528078.tif 000015
【国際調査報告】
2014528078.tif 000016
2014528078.tif 000017