(58)【調査した分野】(Int.Cl.,DB名)
【実施例】
【0012】
(実施例の詳細な説明)
図3はIC300上のJTAGピン数とIC300およびJTAGコントローラ100間のJTAGバス信号接続数を減らすための本開示の方法を示す。本開示に示すIC300等は、限定はしないが、マイクロコントローラIC、マイクロプロセッサIC、デジタル信号プロセッサIC、混合信号IC、FPGA/CPLDIC、ASIC、システム・オン・チップIC、周辺IC、ROMメモリIC、またはRAMメモリICを含む任意タイプの集積回路を表すことができる。
図3において、JTAGコントローラ100はTDO,TMS,CKIN,TDI,およびTRST信号を介してパラレル・ツー・シリアルコントローラ(PSC)にインターフェイスされる。PSC302はJTAGコントローラ100とは別個の回路であり、あるいはPSC302とJTAGコントローラ100を統合して新しいJTAGコントローラ304を形成することができる。PSC302はデータI/O(DIO)信号308およびクロック(CLK)信号310を含むバスを介してIC300内のシリアル・ツー・パラレルコントローラ(SPC)回路306にインターフェイスされる。SPC306はTDI,TMS,TCK,TDO,およびTRST信号を介してIC300内のタップドメイン104にインターフェイスされる。
図16−20について後述するように、CLK信号310はJTAGコントローラ100に関連するクロックソース、IC300に関連するクロックソース、またはJTAGコントローラ100またはIC300に関連するクロックソースにより駆動することができる。
【0013】
図4AはIC300のタップドメインブロック104が単一のIEEE1149.1タップから成ることを示している。
図4BはIC300のタップドメインブロック104が一連のデイジーチェーン・タップアーキテクチュア1−Nから成ることを示している。
【0014】
図4CはIC300のタップドメインブロック104が個別に選択されたりリンキング回路400を使用してさまざまなデイジーチェーン構成に一緒にシリアルにリンクされる一群のタップアーキテクチュア1−Nから成ることを示している。このようなリンキング回路400の例は参照した米国特許第6,073,254号に記述されている。
【0015】
図5AはPSC回路302をより詳細に示す。PSCはコントローラ500、パラレル入力シリアル出力(PISO)レジスタ502、および入出力(I/O)回路504を含んでいる。PISO502はJTAGコントローラ100からのパラレルTMSおよびTDO信号、JTAGコントローラ100からのTRST信号、コントローラ500からのロード(LD)信号を入力し、シリアル出力(OUT)信号をI/O回路504に出力する。
【0016】
PISO502の単純化された表示はそれが2つのシリアル接続されたFF503および505を含むことを示している。JTAGコントローラからのTRST信号がローである間に、FF503および505は非同期的に論理1に設定されCLKまたはLD入力に応答しない。これは、たとえば、TRST信号をFF503および505のSet入力に接続して達成することができる。したがって、TRSTがローである間OUT信号はハイである。TRSTがハイとなると、FF503および505はCLKおよびLD入力に応答できるようにされる。LD入力に応答して、FF503および505はJTAGコントローラからのTMSおよびTDO出力を、それぞれ、非同期的にロードする。ロードされると、FFはCLK310によりシフトされ、OUT信号を介してI/O回路504にTMS信号を、次に、TDO信号を出力する。
【0017】
コントローラ500はCLK信号310、JTAGコントローラ100からのTRST信号を入力する。コントローラ500はPISOへの非同期LD信号およびJTAGコントローラ100のCKIN入力へのクロック信号を出力する。TRSTがローである間、コントローラはリセットされCLK入力に応答しない。リセットされる間、コントローラからのLDおよびCKIN出力はローである。TRSTがハイとなると、コントローラはCLK入力に応答してLDおよびCKIN出力信号を出力できるようにされる。
【0018】
I/O回路504はPISOからのOUT信号を入力してそれらをDIO308上に出力する。また、I/O回路504はDIO308からの信号を入力してそれらをJTAGコントローラ100のTDI入力に出力する。I/O回路504はDIO308へのOUT信号の出力およびDIO308からのTDI信号の入力が同時に生じられるように設計される。I/O回路504の同時入力および出力操作については
図11A,11B,12,13A,および13Bについて詳細に後述する。
【0019】
PSC302の動作(TRSTがハイである間)は
図5Bのタイミング図に例示されている。CLK入力310に応答して、コントローラ500は周期的にLD信号をPISO502に出力しCKIN信号をJTAGコントローラ100に出力するように動作する。また、CLK入力310はPISO502のタイミングをとってそのOUT出力からのデータをI/O回路504にシフトする。I/O回路はOUT信号をDIO308信号に通す。CKIN信号はJTAGコントローラ100の動作のタイミングをとる。LD信号によりPISOはJTAGコントローラ100からのTMSおよびTDO信号パターンを非同期的にロードする。ロードされると、TMSおよびTDOパターンはCLK信号に応答してPISOからI/O回路にシフトアウトされる。
【0020】
以下に、PSCの繰返しロードおよびシフトアウト・シーケンスについて記述する。TMSおよびTDOパターン510はLD信号512に応答して非同期的にPISO内にロードされる。CLK信号514がPISOのOUT出力上のパターン510のTMS信号部をシフトアウトし、次に、CLK信号516がPISOのOUT出力上のパターン510のTDO信号部をシフトアウトする。CKIN信号518はJTAGコントローラが次のTMSおよびTDOパターン520を出力するよう推進する。LD信号522が次のTMSおよびTDOパターン520をPISO内に非同期的にロードする。CLK信号524がPISOのOUT出力上のパターン520のTMS信号部をシフトアウトし、次に、CLK信号526がPISOのOUT出力上のパターン520のTDO信号部をシフトアウトする。CKIN信号528はJTAGコントローラが次のTMSおよびTDOパターン530を出力するよう推進し、次のTMSおよびTDOパターン530はLD信号532によりPISO内に非同期的にロードされCLK信号534および536によりシフトアウトされる。JTAGコントローラはCKIN538中に次のTMSおよびTDOパターン540を出力するよう推進される。上記したパターンロード、パターンシフト、およびJTAGコントローラ推進プロセスはCLK入力310がアクティブである限り繰り返される。
【0021】
JTAGコントローラ100はCKIN入力を受信すると、新しいTMSおよびTDO信号パターンをPISO502に出力しI/O回路504からTDI信号を入力する。TMS信号出力は
図10に従ってターゲットICのタップドメイン104のタップ状態機械を制御し、TDO信号はターゲットICのタップドメインにTDI入力信号を与え(Shift−DR/IR状態であれば)、TDI入力信号はターゲットICのタップドメインからJTAGコントローラに信号を入力する(Shift−DR/IR状態であれば)。
【0022】
図6Aはコントローラ500の実装例を示す。コントローラ500はFF600,FF602,ANDゲート604−608,および遅延インバータ610からなっている。JTAGコントローラ100からのTRST入力がローである間、FF600および602はリセットされLDおよびCKIN出力はローである。TRSTがハイとなると、FF600および602はCLK入力310に応答できるようにされる。FF600はCLK入力310の各立上りエッジ中にそのロードイネーブル(LDENA)出力を切り換える。FF602はそのクロックイネーブル(CKENA)出力におけるFF600のLDENA出力をCLK入力310の各立下りエッジで格納する。LDENAがハイでCLKがローである時にANDゲート604はハイを出力する。ANDゲート606および遅延インバータ620は一緒に動作して、ANDゲート604の出力がハイとなる時は常に、ハイとなるパルスをLD出力上に作り出す。
【0023】
LD信号上のハイとなるパルスの持続時間は遅延インバータ610の入力から出力への信号遅延により決定される。LDパルスの持続時間はPISOにTMSおよびTDOパターンを非同期的にロードするのに十分長くなければならないが、PISOのシフト操作と干渉するほど長くてはならない。たとえば、ハイとなるLDパルスはシフト操作と干渉しないようにシフトするCLK入力の次の立上りエッジの前に十分な量の時間にローへ戻らなければならない。FF602のCKENA出力によりANDゲート608はCKIN出力にCLK信号310を通すことができるようにされる。CKENAはCLK310の立下がりエッジで状態を変えてCLK310の立上りエッジの前にANDゲート608をイネーブル(使用可能)できるようにして、CKIN出力における良好なクロックゲート操作を見込む。
【0024】
コントローラ500の動作が
図6Bのタイミング図に例示されている。CLK入力310に応答して、コントローラ500はLDおよびCKIN信号を周期的に出力するように動作する。上記したように、CKIN信号はJTAGコントローラ100の動作のタイミングをとり、LD信号によりPISOはJTAGコントローラ100からのTMSおよびTDOパターンを非同期的にロードする。CLK310の各立上りエッジでFF600のLDENA出力はその状態を切り換える。CLK310の各立下りエッジでFF602のCKENA出力はFF602へのLDENA入力の状態に設定される。LDパルス出力はLDENAがハイでCLKがローとなる度に生じる。CKIN出力はCKENAがハイでCLKがハイとなる度に生じる。
【0025】
図7AはSPC回路306をより詳細に示す。PSCはコントローラ700、シリアル入力パラレル出力(SIPO)レジスタ702、更新レジスタ704、タップ状態機械(TSM)706、マスターリセット・シンクロナイザ(MRS)回路708、入出力(I/O)回路710、およびパワーオン・リセット回路(POR)712からなっている。
【0026】
POR回路712はターゲットICが最初にパワーアップする度に一時的ローアクティブ・パワーオン・リセットパルスを作り出す。このパワーオン・リセットパルスはMRS回路を初期化するのに使用される。初期化されると、MRS回路708はマスターリセット(MRST)信号上にローを出力してSPC306内の他の回路を初期化し、接続されたタップドメイン104のTRST入力をローに設定する。TRSTがローになると、タップドメイン104はTest Logic Reset状態に強制される。Test Logic Reset状態はIEEE1149.1タップ状態機械の状態であり、
図10のタップ状態機械図に示されている。POR回路712は図示するようにSPC306内に存在することができ、あるいは、SPCの外部、すなわちターゲットIC内の別個の回路として存在することができる。MRS回路708を初期化するPOR回路の機能は他の手段で達成することができる。たとえば、ICのリセットピンをPOR回路712の代りに使用してMRS回路708を初期化することができる。
【0027】
コントローラ700はCLK信号310、MRS708からのコントローラ・イネーブル(CENA)信号、TSM706からのリセット(RST)信号を入力する。コントローラは更新クロック(UCK)を更新レジスタ704に出力し、TCK信号をタップドメイン104およびTSM706に出力する。コントローラ700の詳細な説明は
図8Aおよび8Bにおいてなされる。
【0028】
I/O回路710はTSM706からの出力イネーブル(OE)信号を入力する。OE信号はI/O回路710の出力ドライブをイネーブルまたはディセーブルするのに使用される。I/O回路710はDIO308からの信号を入力し、それらをIN信号を介してSIPO702に出力する。OEがI/O回路710の出力ドライブをイネーブルするように設定されると、タップドメイン104からのTDO信号がDIO上に出力される。OEがI/O回路710の出力ドライブをディセーブルするように設定されると、TDO信号はDIO上に出力されずI/O回路はIN信号を介してSIPO702にDIO信号を入力ようにしか動作しない。OEによりイネーブルされると、I/O回路504はDIO308へのTDO信号の出力を許し、DIO308からのIN信号の入力が同時に生じるように設計される。I/O回路710の同時入力および出力操作は
図11A,11B,12,13A,および13Bに関して詳細に後述する。
【0029】
SIPO702はCLK入力310に応答してI/O回路710のIN出力からのシリアル化されたTMSおよびTDO信号パターンを入力し、それらを更新レジスタに出力する。更新レジスタ704はSIPOからのTDOおよびTMS出力を入力し、それらをTDIおよびTMS信号としてタップドメイン104に出力する。更新レジスタはMRS回路708からのMRST信号も入力する。MRST信号がアクティブローである間に、更新レジスタ704のTDOおよびTMS出力はハイに設定される。MRST信号が非アクティブハイである間に、更新レジスタはコントローラ700からの更新クロック(UCK)信号に応答してSIPO702からのTDOおよびTMS信号をロードすることができる。
【0030】
SIPO702および更新レジスタ704のより詳細な図面はSIPOが2つのシリアル接続されたFF703および705を含むことを示している。CLK信号310に応答して、FF703および705はI/O回路710のIN出力からのシリアル化されたTMSおよびTDO信号をシフトインする。TMSおよびTDO信号はシフトインされると、UCK信号に応答して更新レジスタ704内のFF707および709に並列に転送され、そこでタップドメイン104のTDIおよびTMS入力に入力される。SIPOがタップドメイン104に入力される次のTDOおよびTMSパターンをシリアルに入力するように動作する間に、更新レジスタは現在のTDIおよびTMS入力パターンをタップドメイン104に提供するように働く。上記したように、FF707および709の出力はMRS信号上のローに応答して非同期的にハイに強制され、その結果、タップドメイン104のTDIおよびTMS入力にハイが入力される。これは、たとえば、MRS信号をFF707および709のSet入力に接続して達成することができる。
【0031】
TSM回路706は更新レジスタからのTMS出力、コントローラ700のTCK出力、およびMRS回路708からのMRST出力を入力する。TSM回路706はリセット(RST)信号をコントローラ700およびMRS回路708に出力し、OE信号をI/O回路710に出力する。TSMはIEEE標準1149.1に明記されたタップ状態機械にすぎない。MRS回路708からのMRST入力はIEEE1149.1TSMの標準「TRST」入力に接続され、コントローラ700からのTCK入力はIEEE1149.1TSMの標準「TCK」入力に接続され、コントローラ700からのTMS入力はIEEE1149.1TSMの標準「TMS」入力に接続され、TSMからのRST出力はIEEE1149.1TSMの標準「Reset
*」出力に接続され、TSMのOE出力はIEEE1149.1TSMの標準「Enable」出力に接続されている。
【0032】
TSM回路は本開示においてSPCが接続されたタップドメインのタップ状態、特にOEおよびRST出力を制御する状態を追跡できるようにするのに使用される。IEEE1149.1タップ状態機械の動作は
図10に示す16状態に明記されている。SPC306内に専用TSM回路706を実装する代りに、接続されたタップドメイン104のタップ状態機械からの信号を追跡のために実際に使用することができるが、必要な信号(OEおよびRST)を必ずしもタップドメイン104から入手できないことがある。たとえば、ハードコア((すなわち、固定され修正できないコア)の接続されたタップドメイン104はSPCのOEおよびRST端子に接続するOEおよびRST出力信号端子を提供できないことがある。さらに、
図4Cに示すようなリンキング構成を有するタップドメイン104はSPC306とタップドメイン104との内のリンクされたタップ間のOEおよびRST信号交換計算量を提示することがある。したがって、SPC306は好ましくは接続されたタップドメイン104の状態追跡の単純性を保証するTSM回路706を含んでいる。
【0033】
MRS回路708はI/O回路710のIN出力、CLK信号310、TSM706からのRST信号、およびPOR回路712のパワーオン・リセット出力を入力する。MRS回路708はMRST信号をタップドメイン104、TSM706、および更新レジスタ704に出力し、CENA信号をコントローラ700に出力する。MRS回路708の目的は、(1)どのJTAGコントローラ100もPSC302もSPCのDIO308信号に接続されないシステム内でターゲットICが正常に動作している時にSPCおよび接続されたタップドメイン104をリセット状態に維持する、(2)JTAGコントローラおよびPSCがSPCのDIOおよびCLK信号に接続されている時にSPC306の動作をJTAGコントローラ100およびPSC302の動作に同期化させるのを許すことである。SPCの動作をJTAGコントローラおよびPSCの動作に同期化させることは、PSCから出力されたシリアル化されたTMSおよびTDOパターンがシリアル化されたTMSおよびTDOパターンとして正しくSPCに入力されることを許すため重要である。MRS回路708の詳細な説明は
図9A−9Cについてなされる。
【0034】
SPC306の動作は
図7Bのタイミング図に例示されている。CLK入力310に応答して、コントローラ700はUCK信号を更新レジスタ704にまたTCK信号をタップドメイン104およびTSM706に周期的に出力するように動作する。また、CLK入力310はI/O回路710のIN入力からのデータをシフトインするようにSIPO702のタイミングをとる。I/O回路はDIO入力信号をIN出力へ通す。TCK信号はタップドメイン104の動作のタイミングをとる。UCK信号により更新レジスタ704はSIPO702のパラレルTDOおよびTMS信号パターン出力をロードする。ロードされると、TDOおよびTMS信号パターンはタップドメイン104のTDIおよびTMS入力に加えられる。タップドメイン104はTCKに応答してTDIおよびTMS信号パターンに応答する。
【0035】
以下に、SPCの繰返しシフトインおよび更新シーケンスについて記述する。CLK信号720および722に応答してシリアルTMSおよびTDOビットストリーム718がSIPO702内にシフトインされる。シフトインされたTMSおよびTDO信号はSIPO702からのパラレルTDOおよびTMS出力パターン724を形成し、それはUCK信号726に応答して更新レジスタ704にクロックインされる。更新レジスタ704内のTDOおよびTMSパターン724はタップドメイン104のTDIおよびTMS入力に加えられる。TCK信号728が更新レジスタ704からのTDIおよびTMSパターン724に応答するようにタップドメイン104にクロックされる。CLK信号732および734に応答して次のシリアルTMSおよびTDOビットストリーム730がSIPO702にシフトインされる。シフトインされたTMSおよびTDO信号はSIPO702からのパラレルTDOおよびTMS出力パターン736を形成し、それはUCK信号738に応答して更新レジスタ704にクロックインされる。更新レジスタ704内のTDOおよびTMSパターン738はタップドメイン104のTDIおよびTMS入力に加えられる。TCK信号740は更新レジスタ704からのTDIおよびTMSパターン730に応答するようにタップドメイン104にクロックされる。上記したシリアルパターン・シフトイン、パラレルパターン更新、およびタップドメインクロック操作はCLK入力310がアクティブである限り繰り返される。
【0036】
タップドメイン104がTCK入力を受信すると、
図10に示すように、タップドメインのタップ状態機械はTMS入力に応答して状態遷移を行う。また、タップ状態機械が
図10のShift−DR/IR状態であれば、タップドメイン104はTCK入力に応答してそのTDI入力からデータを入力し、そのTDO出力にデータを出力する。
【0037】
図8Aはコントローラ700の実装例を示す。コントローラ700はFF800,FF802,ANDゲート804および806,およびORゲート808からなっている。FF800はCLK310の各立上りエッジ中にその更新イネーブル(UPENA)出力を切り換える。FF802はCLK310の各立下りエッジでFF800のUPENA出力をそのクロックイネーブル(CKENA)出力において格納する。ANDゲート804はUPENAがハイで、CLKがローで、ORゲート808のコントローラリセット(CRST)出力がハイである時にそのUCK出力上にハイを出力する。CKENAおよびCRSTがハイである時は常にANDゲート806がゲートオンされてそのCLK310入力をそのTCK出力に通し、そうでなければTCK出力は強制的にローとされる。CS回路708からのCENA入力がハイで、さらに/またはTSM706からのRST入力がハイであれば常にORゲート808はCRST上にハイを出力し、そうでなければCRSTはローを出力する。CKENAはCLK310の立下りエッジで状態を変え、ANDゲート806がCLK310の立上りエッジの前にイネーブルされてTCK出力における良好なクロックゲーティング操作を見込めるようにする。
【0038】
コントローラ700の動作が
図8Bのタイミング図に例示されている。ORゲート808のCRST出力がハイである間に、コントローラ700はCLK入力310に応答してUCKおよびTCK信号を周期的に出力するように動作する。上記したように、TCK信号はタップドメイン104の動作のタイミングをとり、UCK信号により更新レジスタはSIPO702からのパラレルTDOおよびTMSパターンをロードする。CLK310の各立上りエッジでFF800の更新イネーブル(UPENA)出力はその状態を切り換える。CLK310の各立下りエッジでFF802のCKENA出力はFF802へのUPENA入力の状態に設定される。LDENAがハイでCLKがローとなる度にUCK出力が生じる。CKENAがハイでCLKがハイとなる度にCKIN出力が生じる。CENAおよびRSTが共にローであれば、ORゲート808のCRST出力はローとなってコントローラ700をリセットする。CRSTがローである間に、FF800のUPENA出力はハイに設定され、FF802のCKENA出力はローに設定され、ANDゲート804のUCK出力はローに設定され、ANDゲート806のTCK出力はローに設定される。
【0039】
図9AはMRS回路708の実装例を示す。MRS回路708は状態機械900およびFF902からなっている。状態機械900はCLK310の立上りエッジで作動しFF902はCLK310の立下りエッジで作動する。状態機械900はI/O回路710からのIN信号、TSM706からのRST信号、CLK310からのクロック信号、およびPOR712からのパワーオン・リセット信号を入力する。状態機械900は上記したMRST信号およびコントローラ・イネーブル(CE)信号を出力する。CE信号はFF902のD入力に接続される。FF902のQ出力は上記したCENA信号を駆動する。FF902のリセット出力はPOR712のパワーオン・リセット出力に接続される。
【0040】
上記したように、MRS回路708の目的はSPCのDIO308信号が外部から駆動されない時にSPCおよびタップドメインをリセット状態に維持し、SPCの動作をそのDIO308信号を駆動する外部回路と同期化させることである。
【0041】
状態機械900の動作が
図9Bの状態図に示されている。POR712からのロー・アクティブ・パワーオン・リセット入力に応答して、あるいはローとなるTSM706のRST出力に応答して、状態機械900は“Set MRST Low & Poll IN”状態904に入る。状態904において状態機械はMRST出力信号上にローを出力する。I/O回路710からのIN入力がハイである間、状態機械は状態904に留まる。IN入力がローになると、状態機械は“Poll IN”状態906に遷移する。MRST出力は状態906においてローのままである。IN入力がハイになると、状態機械は状態906から状態904に戻り、そうでなければ、状態機械は状態906から“Poll IN”状態908に遷移する。MRST出力は状態908においてローのままである。IN入力がローになると、状態機械は状態908から状態904に戻り、そうでなければ、状態機械は状態908から“Poll IN”状態910に遷移する。MRST出力は状態910においてローのままである。IN入力がローになると、状態機械は状態910から状態904に戻り、そうでなければ、状態機械は状態910から“Set MRST & CE High”状態912に遷移する。
【0042】
状態912において、状態機械はMRSTおよびCE信号をハイに設定する。CLK310の立下りエッジで、FF902は状態機械900からのハイCE出力をクロックインし、それはFF902のCENA出力をハイに設定する。RST入力がローである間状態機械は状態912に留まる。RST入力がハイになると、状態機械は“Set CE Low”状態914に遷移する。状態914において、状態機械はCE信号をローに設定する。CLK310の立下りエッジで、FF902は状態機械900からのローCE出力をクロックインし、それはFF902のCENA出力をローに設定する。RST入力がハイである間状態機械は状態914に留まり、RST入力がローになると状態904に遷移する。
【0043】
状態機械はPOR712からのパワーオン・リセット入力またはTSM706のRTS出力上のロー入力を受信すると状態904に入るように設計されている。状態機械はI/O回路710からのIN入力がハイである限り状態904に留まる。
図11Aに関して後述するように、I/O回路は状態機械がMRST信号上にローを出力する時にI/O回路710へのDIO入力308が外部から駆動されていなければ、IN信号上にハイを出力するように設計されている。IN信号上のハイは状態機械900を状態904に維持し、それは状態機械MRST出力上のローを維持する。MRSTがローである間、SPC306回路およびタップドメイン104はターゲットICの正規動作と干渉できない非アクティブリセット状態に保持される。
【0044】
図5AのJTAGコントローラ100およびPSC回路302が
図7AのターゲットICのSPC回路306のDIO信号に最初に接続されると、PSCおよびSPC回路の動作はPSCからのシリアル化されたTMSおよびTDOパターンがシリアル化されたTMSおよびTDOパターンとして正しくSPCに入力されるように同期化する必要がある。
図9Bの状態図のセクション916内の状態はこの必要とされる同期化ステップをどのように達成できるかの一例を提供する。この同期化プロセスを示すタイミング図が
図9Cに示されている。
【0045】
図9Cの時間基準918はPSC302がSPC306に接続されない、すなわち、DIO308が外部から駆動されない期間を示す。ターゲットICのSPC306およびタップドメイン104内の回路は上記したように初期化されており、状態機械900はIN信号のハイ出力をポーリングしMRST出力上にローを出力する状態904にある。時間918はSPC306およびタップドメイン104が常駐するターゲットICがシステム内で正常に動作しており、SPCのDIO信号がテスト、エミュレーション、および/またはトレース操作を行うように外部から駆動されていない時間とすることができる。このタイミング例では、CLK信号310はターゲットIC内のクロックソースによりアクティブに駆動されるものと仮定する。このようにして、状態機械900の状態904はアクティブなCLK信号310の各立上りエッジ中にIN信号のハイ論理レベルをポーリングしている。IN信号が未知の理由でCLKサイクル入力中に一時的にローであったなら、状態機械は状態906を経て状態904に戻ることに注意する必要はない。さらに、状態機械は未知の理由で他の一時的ローまたはハイ信号シーケンスを有するIN信号に応答して状態908および910から状態904に戻り得る。
【0046】
図9Cの時間基準920はPSC302がDIO308およびCLK310信号を介してSPC306に外部接続されている期間を示す。物理的な接続過程中に、PSCおよびSPC間に形成される電気的接続により、DIO308上に望ましくない一時的なシグナリングシーケンスがあることがある。これらの一時的な信号シーケンスはPSCおよびSPC間の同期化の成功を妨げることがある。
図9Bのセクション916内の状態遷移マッピングはDIO上の下記の3つのタイプの一時的な信号シーケンスをフィルタリングして、PSCおよびSPC間の同期化過程に影響を及ぼさないように提供される。
【0047】
状態図に示すように、接続過程中の1−0−1の一時的なDIO信号シーケンスにより状態機械は状態904から状態906へ遷移して状態904へ戻る。このようにして、一時的なDIO接続シーケンスは同期化過程に影響を及ぼすことを防止される。
【0048】
状態図に示すように、接続過程中の1−0−0−0−1の一時的なDIO信号シーケンスにより状態機械は状態904から状態906および状態908へ遷移して状態904へ戻る。このようにして、この一時的なDIO接続シーケンスは同期化過程に影響を及ぼすことを防止される。
【0049】
状態図に示すように、接続過程中の1−0−0−1−0−1の一時的なDIO信号シーケンスにより状態機械は状態904から状態906および状態908および状態910へ遷移して状態904へ戻る。このようにして、この一時的なDIO接続シーケンスは同期化過程に影響を及ぼすことを防止される。
【0050】
状態機械例は一時的なDIOシーケンスの上記3つのタイプをフィルタリングするように設計されているが、所望により、より多数のDIOシーケンスをフィルタリングするように設計することができる。
【0051】
図9Cの時間基準922はPSC302およびSPC306間の接続がなされており、状態機械はIN信号が接続PSC302からのDIO入力によりハイに駆動されている状態904にある期間の開始を示す。PSC302はDIO308を介してSPCのIN信号上に2つの論理0のパターン924をシリアルに入力することにより同期化過程を開始し、それにより状態機械900は状態904から状態906および状態908へ遷移する。
図5Aに示すように、PSCはLD信号を使用して0のTMS値および0のTDO値をPISO502にロードし、次にCLK信号310を使用して2つの論理0を出力するようにPISOをシフトすることにより2つの論理0を出力する。次に、PSC302はDIO308を介してSPCのIN信号上に2つの論理1のパターン926をシリアルに入力し、それにより状態機械900は状態908から状態910および状態912へ遷移する。
図5Aに示すように、PSCはLD信号を使用して1のTMS値および1のTDO値をPISO502にロードし、次にCLK信号310を使用して2つの論理1を出力するようにPISOをシフトすることにより2つの論理1を出力する。図からお判りのように、状態機械900は2つの論理1のシリアルパターンが続く2つの論理0のシリアルパターンの正確な入力に応答して状態904から状態912へしか遷移できない。
【0052】
タイミング図に示すように、状態機械900のMRSTおよびCE信号出力は時間925において状態912内でハイに設定される。ハイとなるMRSTはタップドメイン104、TSM706、および更新レジスタ704からリセット状態を除去する。ハイとなるCEによりFF902は時間927においてCENAをハイに設定する。CENAがハイになると、コントローラ700のCRST信号ハイに設定されてコントローラ700は時間923においてUCKおよびTCK信号の出力を開始することができる。第1のUCK信号は時間923においてパターン926の2つの論理1を更新レジスタ704にロードする。時間923におけるSPCのコントローラ700のイネーブリングは、SPCのコントローラ700のUCKおよびTCK信号が、それぞれ、PSCコントローラ500のLDおよびCKIN信号と同期化されるように生じる。UCK信号をLD信号と同期化しTCK信号をCKIN信号と同期化することにより、SPC306は後続するシリアル化された2ビットパターンをPSC302からDIO308を介して正確に受信することができる。たとえば、PISO502が2ビットパターンをシフトアウトしている時にSIPO702は2ビットパターンをシフトインしており、PISO502がシフトされる次の2ビットパターンをロードしている時にSIPO702は現在の2ビットパターンを更新レジスタ704にロードしている。UCKおよびLD信号とTCKおよびCKIN信号の同期化された動作は
図14Aの説明に関してより明瞭となる。
【0053】
本開示の状態機械900は2つのシリアル化された2ビットパターン924および926のシーケンスを同期化に使用するように設計されているが、所望により、シリアル化された2ビットパターンのより長いシーケンスを同期化に使用することができる。2ビットパターンのより長いシーケンスを使用すると、時間920中の上記した接続過程によりPSCおよびSPC間の同期化失敗の可能性はさらに低減される。また、状態機械のIN入力で予期せぬシグナリングが生じる場合にDIOが外部駆動されなければ、より長い同期化パターンシーケンスにより状態機械900の状態904へ戻る能力が改善される。2ビットパターン924および926の例は、それぞれ、2つの0と2つの1を使用していたが、パターンの2ビットは0と1の任意所望のまたは所要の組合せを使用することができる。パターンシーケンスの最後の2ビットパターンのTMS部はタップドメイン104およびTSM回路706が応答する第1のTMS入力とすることができる。
図9Cの例では、パターン926のTMS部が論理1に設定されてタップドメイン104およびTSM回路706を同期化の後でTLR状態に留める。パターン926のTMS部が論理0に設定されておれば、タップドメイン104およびTSM回路706は同期化の後でRTI状態に遷移している。
【0054】
上記したPSCおよびSPC同期化過程に続いて、PSCはシリアル化されたTDOおよびTMSパターンのSPCへの入力を開始してタップドメイン104内へJTAG命令またはデータをスキャンすることができる。下記の例はPSCがシリアル化されたTDOおよびTMSパターンをSPCへ入力して、タップドメイン104に
図10のタップ状態図に従って命令スキャン操作を行わせる様子を記述するものである。
【0055】
SPCはPSCからの第1のシリアル化されたTDO(X)およびTMS(0)パターン928を入力し、それはSIPO702に入力され、UCK929中に更新レジスタ704を介してタップドメイン104のTDIおよびTMS入力およびTSM706のTMS入力に加えられる。パターンのTDO部のXはTDOが“don’t care”信号であることを示している。タップドメイン104およびTSM706へのこの第1のTDIおよびTMSパターン入力によりタップドメインおよびTSMはTCK942に応答してTest Logic Reset(TLR)状態からRun Test/Idle(RTI)状態へ遷移する(
図10)。TCK942の立下りエッジでTSM706はそのRST信号をハイに設定してコントローラ700のORゲート808の入力におけるリセット状態を除去する。ハイとなるRSTに応答して、状態機械900はCLK310の次の立上りエッジで状態914に遷移する。状態機械は状態914においてCE出力をローに設定し、それによりFF902はCLK310の立下りエッジでCENA上にローを出力する。RST信号がハイである間状態機械900は状態914に留まる。
【0056】
SPCはPSCからの第2のシリアル化されたTDO(X)およびTMS(1)パターン930を入力し、それはSIPO702へ入力されUCK931中に更新レジスタ704を介してタップドメイン104のTDIおよびTMS入力およびTSM706のTMS入力へ加えられる。この第2のTDIおよびTMSパターンによりタップドメイン104およびTSMはTCK944に応答してRTI状態からSelect−DR(SLD)状態へ遷移する。
【0057】
SPCはPSCからの第3のシリアル化されたTDO(X)およびTMS(1)パターン932を入力し、それはSIPO702へ入力され、UCK933中に更新レジスタ704を介してタップドメイン104のTDIおよびTMS入力およびTSM706のTMS入力へ加えられる。この第3のTDIおよびTMSパターンによりタップドメイン104およびTSMはTCK946に応答してSLD状態からSelect−IR(SLI)状態へ遷移する。
【0058】
SPCはPSCからの第4のシリアル化されたTDO(X)およびTMS(0)パターン934を入力し、それはSIPO702へ入力され、UCK935中に更新レジスタ704を介してタップドメイン104のTDIおよびTMS入力およびTSM706のTMS入力へ加えられる。この第4のTDIおよびTMSパターンによりタップドメイン104およびTSMはTCK948に応答してSLI状態からCapture−IR(CPI)状態へ遷移する。
【0059】
SPCはPSCからの第5のシリアル化されたTDO(0)およびTMS(0)パターン936を入力し、それはSIPO702へ入力され、UCK937中に更新レジスタ704を介してタップドメイン104のTDIおよびTMS入力およびTSM706のTMS入力へ加えられる。この第5のTDIおよびTMSパターンによりタップドメイン104およびTSMはTCK950に応答してCPI状態からShift−IR(SHI)状態へ遷移する。TSM706がSHI状態に遷移すると、そのOE出力はタップドメイン104からの第1のTDO出力がDIO308上に出力されてPSCコントローラ500のI/O回路504を介してJTAGコントローラのTDI入力に入力されるようにI/O回路710の出力駆動をイネーブルするように設定される。TSM(およびタップドメイン)が
図10のShift−IRまたはShift−DR状態にある時は常にTSM706はI/O回路710の出力駆動をイネーブルするようにそのOEを設定する。
【0060】
SPCはPSCからの第6のシリアル化されたTDO(1)およびTMS(0)パターン938を入力し、それはSIPO702へ入力され、UCK939中に更新レジスタ704を介してタップドメイン104のTDIおよびTMS入力およびTSM706のTMS入力へ加えられる。この第6のTDIおよびTMSパターンによりタップドメイン104およびTSMはTCK952に応答してSHI状態に留まる。パターン938において、TDOは1に設定されてタップドメイン104内にシフトされる第1のTDI入力は論理1であることを表示するように示されている。TCK952の立上りエッジで第6のパターン938の第1のTDI入力(1)はタップドメイン104内にシフトインされる。タップドメイン104からの第1のTDO出力もTCK952に同期化されるCKIN入力の立上りエッジでJTAGコントローラ100のTDI入力へ入力される。
【0061】
シリアル化されたパターン(940,942,...)が入力されてタップドメイン104(およびTMS706)がSHI状態に留まる限り(すなわち、パターンのTMS部=0)、タップドメインからのTDO出力がJTAGコントローラ100に入力される間各パターンのTDI入力部はタップドメイン104へ入力される。TDIおよびTDOのシフトインおよびアウトが完了すると、PSCはシリアル化されたパターンを入力し、パターンのTMS部はタップドメイン104およびTSM706を
図10のタップ状態図に従ってShift−IR状態(SHI)からExit1−IR状態へ移し、次に、任意他の状態へ移すように設定されている。
【0062】
上記した過程がJTAGコントローラおよびターゲットICのタップドメイン間で命令スキャン操作を実施している間、データスキャン操作も同様に実施することができる。JTAGコントローラからのシリアル化されたTDIおよびTMS入力およびタップドメインからのTDO出力を使用する命令およびデータスキャン操作を使用してテスト、エミュレーション、デバッグ、トレース、および/またはPSCおよびSPC間の2信号DIO308およびCLK310インターフェイスを介した他の操作を行うことができる。
【0063】
操作が完了すると、JTAGコントローラはシリアル化されたTDOおよびTMSパターンのストリングを出力することができ、各パターンのTMS部は論理1に設定されてタップドメイン104およびTSM回路706を
図10のTest Logic Reset状態へ遷移させるように設定されている。
図10に示すように、タップ状態機械はTMS上の少なくとも5つの論理ハイ入力を受信する時は常にそのいずれかの状態からTest Logic Reset状態へ遷移するように設計される。したがって、各々がTMSハイを有する5つのシリアル化されたTDOおよびTMSパターンによりタップドメイン104およびTSM706はTest Logic Reset状態に入る。
【0064】
TSM706はTest Logic Reset状態に入ると、RST出力をローに設定しそれによりコントローラ700がリセットされてMRS708の状態機械900は状態904に入り、その結果
図9Cのタイミング図の時間基準918中に示す信号レベルとなる。SPC回路がRST信号によりリセットされた後で、PSCおよびSPC間のDIOおよびCLK接続を解除することができる。PSCおよびSPC解除ステップ中に、DIO信号上で一時的な信号グリッチ/バウンスが生じることがある。
図9Bのセクション916内の上記した状態機械900状態は解除ステップ中に生じることがある任意の望ましくない一時的なDIOシグナリングに続いて状態機械は状態904に留まるかそこへ戻るように状態機械へのIN入力をフィルタリングするために再び作用し始める。解除ステップに続いて、状態機械は状態904となりMRST出力はローであり、それはコントローラ700、TSM706、およびタップドメイン104上のリセット状態を維持する。
【0065】
図11Aは構成1100のI/O回路504およびターゲットICのI/O回路710間のDIO308信号接続を介してターゲットIC300のSPC306およびタップドメイン104とインターフェイス接続されたJTAGコントローラ100およびPSC302の構成1100の例を示す。簡単にするために、DIO信号308を伴うCLK310信号は本例には示されていない。また、説明を簡単かつ容易にするために、I/O回路504および710は
図5Aおよび7Aに示すように、それぞれ、PSC302およびSPC306の内側ではなく外側に存在するように示されている。I/O回路504はOUT信号を介してPSC302に接続され、かつTDI信号を介してJTAGコントローラ100に接続されている。I/O回路710はTDO信号を介してタップドメイン104に接続されINおよびOE信号を介してSPCに接続されている。
【0066】
I/O回路504は入力回路1102、出力バッファ1104、および抵抗体1106からなっている。OUT信号はバッファ1104の入力および入力回路1102の第1の入力に接続されている。バッファ1104の出力は抵抗体1106を介してDIO信号に接続されている。DIO信号は入力回路1102の第2の入力に接続されている。入力回路1102の出力はJTAGコントローラ100のTDI入力に接続されている。
【0067】
I/O回路710は入力回路1108、出力バッファ1110、抵抗体1112、およびプルアップ(PU)回路1114からなっている。TDO信号はバッファ1110の入力および入力回路1108の第1の入力に接続されている。バッファ1110の出力は抵抗体1112を介してDIO信号に接続されている。DIO信号は入力回路1108の第2の入力およびPU回路1114に接続されている。入力回路1108の出力はSPC306のIN入力に接続されている。
【0068】
PU回路1114はDIO信号がバッファ1104または1110により駆動されていない時に入力回路1108へのDIO信号入力をハイに設定するのに使用される。たとえば、JTAGコントローラおよびPSC構成1100がターゲットICのDIOに接続されておらずかつターゲットICのバッファ1110の出力ドライブがOE信号によりディセーブルされる間、PU回路1114はDIO信号をハイに設定して論理1が入力回路1108のIN信号出力からSPC306へ入力されるようにする。上記したように、IN信号上のハイによりMRS回路708の状態機械900は
図9Bの状態904に留まる。
【0069】
I/O回路504の出力バッファ1104およびI/O回路710の出力バッファ1110は、好ましくは、ほぼ同じ電流シンク/ソースドライブ強度を有するように設計される。また、I/O回路504および710の抵抗体1106および1112はほぼ同じ抵抗を有する。
【0070】
図11BはDIO308を介してI/O回路504および710間で同時データ通信が行われる4つのケースA−Dに対するタイミング波形を例示している。各ケースA−Dは垂直点線ボックスによりタイミング図内に表示される。
図12は4つのケースA−Dの各々の期間中のDIO信号線上の電流を例示している。これらの例において、バッファ1110へのOE入力はバッファ1110がDIO信号を駆動できるように設定される。
【0071】
ケースAはOUTをローに駆動するPSC302およびTDOをローに駆動するタップドメイン104を示す。
図12のケースAに示すように、両方のバッファ1104および1110からローが出力されるためDIO信号線上を少量の電流しか流れない。この小さな電流は抵抗体1106および1112の両端間に著しい電圧降下を引き起こさない。そのため、入力回路1102および1108へのDIO信号入力はロー信号入力として容易に検出可能である。このOUTおよびTDO出力状態に応答してDIO信号はローに駆動される。OUTおよびDIOがローになると、入力回路1102はTDI入力上のローをJTAGコントローラ100へ入力する。TDOおよびDIOがローになると、入力回路1108はIN入力上のローをSPC306へ入力する。
【0072】
ケースBはOUTをローに駆動するPSC302およびTDOをハイに駆動するタップドメイン104を示す。
図12のケースBに示すように、バッファ1104からローが出力されバッファ1110からハイが出力されるためDIO信号線上のバッファ間を大きな電流が流れる。抵抗体1106および1112はこの大きな電流を制限するように働き、それらの両端間に生じる電圧降下は入力回路1102および1108によりハイかローかを容易に検出可能な中間レベル電圧をDIO線上に確立する。このOUTおよびTDO出力状態に応答してDIO信号は中間電圧レベルに駆動される。OUTがローでDIOが中間電圧になると、入力回路1102はTDI入力上のハイをJTAGコントローラ100へ入力する。TDOがハイでDIOが中間電圧になると、入力回路1108はIN入力上のローをSPC306へ入力する。
【0073】
ケースCはOUTをハイに駆動するPSC302およびTDOをローに駆動するタップドメイン104を示す。
図12のケースCに示すように、バッファ1104からハイが出力されバッファ1110からローが出力されるためDIO信号線上のバッファ間を大きな電流が流れる。抵抗体1106および1112はこの大きな電流を制限するように働き、それらの両端間に生じる電圧降下は入力回路1102および1108によりハイかローかを容易に検出可能な中間レベル電圧をDIO線上に確立する。このOUTおよびTDO出力状態に応答してDIO信号は中間電圧レベルに駆動される。OUTがハイでDIOが中間電圧になると、入力回路1102はTDI入力上のローをJTAGコントローラ100へ入力する。TDOがローでDIOが中間電圧になると、入力回路1108はIN入力上のハイをSPC306へ入力する。
【0074】
ケースDはOUTをハイに駆動するPSC302およびTDOをハイに駆動するタップドメイン104を示す。
図12のケースDに示すように、両方のバッファ1104および1110からハイが出力されるためDIO信号線上を少量の電流しか流れない。この小さな電流は抵抗体1106および1112の両端間に著しい電圧降下を引き起こさない。そのため、入力回路1102および1108へのDIO信号入力はハイ信号入力として容易に検出可能である。このOUTおよびTDO出力状態に応答してDIO信号はハイに駆動される。OUTおよびDIOがハイになると、入力回路1102はTDI入力上のハイをJTAGコントローラ100へ入力する。TDOおよびDIOがハイになると、入力回路1108はIN入力上のハイをSPC306へ入力する。
【0075】
図13Aは入力回路1102または1108として使用できる入力回路1300をどのように設計するかの一例を示す。入力回路1300は電圧比較器回路1302、マルチプレクサ1304、インバータ1306、およびバッファ1308を含んでいる。電圧比較器回路1302はDIOからの電圧を入力しデジタル制御信号S0およびS1をマルチプレクサ1304へ出力する。図からお判りのように、電圧比較器回路1302の電圧(V)からグランド(G)への第1のレグ1310は直列P−チャネルトランジスタおよび電流源を含み、電圧からグランドへの第2のレグ1312は直列N−チャネルトランジスタおよび電流源を含んでいる。図からお判りのように、S1が第1のレグ1310のP−チャネルトランジスタおよび電流源間のポイントに接続され、S0が第2のレグ1312のN−チャネルトランジスタおよび電流源間のポイントに接続されている。トランジスタのゲートはDIOに接続されてDIO上の電圧がトランジスタをオンオフできるようにする。
【0076】
電圧比較器回路1302およびマルチプレクサ1304の動作は
図13Bの真理値表に示され、ここで説明される。DIO上の電圧がローであれば、S0およびS1出力はハイに設定され、それによりマルチプレクサ1304はそのロー入力1314を選択してロー入力をTDI/IN(回路1102に対するTDIおよび回路1108に対するIN)信号上にバッファ1308を介して出力する。DIO上の電圧が中間レベルであれば、S0はローに設定されS1はハイに設定され、それによりマルチプレクサ1304はその反転されたOUT/TDO(回路1102に対するOUTおよび回路1108に対するTDO)入力信号1316を選択して反転されたOUT/TDO信号をTDI/IN信号へバッファ1308を介して出力する。DIO上の電圧がハイであれば、S0およびS1出力はローに設定され、それによりマルチプレクサ1304はそのハイ入力1318を選択してハイ入力をTDI/IN信号へバッファ1308を介して出力する。
【0077】
上記説明から入力回路1300は(1)DIO信号がローであればTDI/IN上にローを入力し、(2)DIO信号がハイであればTDI/IN上にハイを入力し、(3)DIO信号がハイとローの間の中間レベルであればTDI/IN上にOUT/TDOの反転を入力することは明白である。
【0078】
図11Aに戻り入力回路1300の上記説明を読めば、次のことは明白である。
DIOがハイであれば、入力回路1102および1108は、それぞれ、JTAGコントローラ100およびSPC306へハイを入力する。
DIOがローであれば、入力回路1102および1108は、それぞれ、JTAGコントローラ100およびSPC306へローを入力する。
DIOが中間レベルでPSC302からのOUT信号がローであれば、入力回路1102はタップドメイン104がTDO上にハイを出力してDIO上に中間レベルを生じていることを知る。したがって、入力回路1102はJTAGコントローラ100のTDI入力にハイを入力する。
DIOが中間レベルでPSC302からのOUT信号がハイであれば、入力回路1102はタップドメイン104がTDO上にローを出力してDIO上に中間レベルを生じていることを知る。したがって、入力回路1102はJTAGコントローラ100のTDI入力にローを入力する。
DIOが中間レベルでタップドメイン104からのTDO信号がローであれば、入力回路1108はPSC302がOUT上にハイを出力してDIO上に中間レベルを生じていることを知る。したがって、入力回路1108はSPC306のIN入力にハイを入力する。
DIOが中間レベルでタップドメイン104からのTDO信号がハイであれば、入力回路1108はPSC302がOUT上にローを出力してDIO上に中間レベルを生じていることを知る。したがって、入力回路1108はSPC306のIN入力にローを入力する。
【0079】
図14AはJTAGコントローラ100およびPSC302がDIO308およびCLK310信号を介してターゲットIC300のSPC306およびタップドメイン104に接続されかつ通信する全体の構成を示す。簡略化のために、通信プロセスに伴うPSC302およびSPC306の回路素子しか図示されていない。
図14Bのタイミング図は通信プロセスを詳述するものである。
【0080】
図14Bのタイミング図において、PSCおよびSPCの両方のコントローラ500および700が、それぞれ、上記したように同期化されておりCLK信号310に応答してそれらの各LDおよびCKINおよびUCKおよびTCK信号をアクティブに操作している。図示されかつ上記したように、PSCのLD信号はSPCのUCK信号と同期して動作し、PSCのCKIN信号はSPCのTCK信号と同期して動作する。簡略化のために、CKINおよびTCK信号は1つのクロック信号として示されている。
【0081】
LD信号1402中に、JTAGコントローラ100からのTMSおよびTDOパターンN1404がPISO502内へロードされる。ロードされたパターンのTMS部はCLK1406中にPISO502からSIPO702へシフトされ、ロードされたパターンのTDO部はCLK1408中にPISO502からSIPO702へシフトされる。CKIN1410は次のTMSおよびTDOパターンN+1 1412を出力しタップドメインからのTDO出力1415を入力する(Shift−DRまたはShift−IR状態であれば)ようにJTAGコントローラを推進する。TCK1410によりタップドメイン104はUCK1413中にタップドメインへ入力された予め送信されたTDIおよびTMS入力パターンN−1 1414に応答する。また、TCK1410中に、タップドメインはJTAGコントローラに入力される(Shift−DRまたはShift−IR状態であれば)次のTDO出力を出力する。
【0082】
LD信号1418中に、JTAGコントローラ100からのTMSおよびTDOパターンN+1 1412がPISO502へロードされる。ロードされたパターンのTMS部はCLK1420中にPISO502からSIPO702へシフトされ、ロードされたパターンのTDO部はCLK1422中にPISO502からSIPO702へシフトされる。CKIN1424は次のTMSおよびTDOパターンN+2 1426を出力しタップドメインからのTDO出力1428を入力するようにJTAGコントローラを推進する。TCK1424によりタップドメイン104はUCK1413中にタップドメインへ入力されたTDIおよびTMS入力パターンN 1416に応答する。また、TCK1424中に、タップドメインはJTAGコントローラに入力される次のTDO出力1432を出力する。
【0083】
PSCおよびSPCを介したJTAGコントローラ100およびタップドメイン104間の通信の上記したタイミング例は、PSCおよびSPC間にDIOおよびCLK接続が存在する間またCLK信号1310がアクティブである間続く。
【0084】
図14CはJTAGコントローラおよびタップドメイン間でシングルデータ・レジスタシフト操作を実施する
図14Aの構成のタイミング例を示す。図からお判りのように、JTAGコントローラはタップドメインが
図10のRun Test/Idle(RTI)状態からSelect−DR(SLD)状態、Capture−DR(CPD)状態、Select−DR(SLD)状態、Exit1−DR(X1D)状態、Update−DR(UPD)状態へ遷移し、RTI状態へ戻るのを制御する一連のTMSおよびTDOパターン1440−1454を出力する。このタップ状態シーケンスによりJTAGコントローラおよびタップドメイン間で1ビットデータ・レジスタシフト操作が生じる。JTAGコントローラから出力される一連のパターン1440−1454はPSCによりシリアル化されかつSPCによりデシリアル化されてタップドメインへTDIおよびTMSパターンシーケンス1454−1468として入力される。図からお判りのように、パターンのシリアル化およびデシリアル化のプロセスによりTDIおよびTMSパターンはタップドメインへ入力されJTAGコントローラからのTMSおよびTDOパターン出力から遅延する。
【0085】
JTAGコントローラが
図1に示すようにタップドメインに従来どおり接続されておれば、TDOからTDIへの間のデータシフト操作が時間1470においてCKINおよびTCKの立上りエッジで、すなわち、タップドメインがShift−DR(SFD)状態からExit1−DR(X1D)状態へ遷移する時に生じる。しかしながら、パターン遅延により、TDOからTDIへの間のデータシフト操作は時間1472においてCKINおよびTCKの立上りエッジで生じる。JTAGコントローラから出力されたTDOデータのタップドメインのTDI入力へのシフトインはパターン遅延により遂行されず、それはTDOデータがシリアル化およびデシリアル化に続いてタップドメインへ入力されたTDIおよびTMSパターン内に留まりTCK1472の立上りエッジでタップドメイン内にクロックされるためである。しかしながら、パターン遅延のため、タップドメインからの正しいTDO出力(黒く塗りつぶして示す)はTCK1472の立下りエッジまでタップドメインから出力されないため、JTAGコントローラはTCK1470の立上りエッジでタップドメインからの正しいTDO出力を入力しない。したがって、JTAGコントローラからのTDOデータはTDIデータとして正しくタップドメインに入力されるが、タップドメインからのTDO出力はTDIデータとして不正にタップドメインに入力される。
【0086】
テキサスインスツルメンツSN74/54ACT8990JTAGバス・コントローラチップを使用するように設計されるJTAGコントローラは上記したパターン遅延問題を解決することができる。SN74/54ACT8990JTAGバス・コントローラチップはJTAGコントローラからのTMSおよびTDO出力をターゲットICのTMSおよびTDI入力に登録できるJTAGコントローラおよびターゲットIC間のケーブリングにより動作するように設計されている。
【0087】
図15はACT8990のTMSおよびTDO出力およびターゲットIC1520のTMSおよびTDI入力間のパス内にFF1516−1518を含むケーブル1514を介してACT8990JTAGコントローラチップ1502がターゲットICにインターフェイス接続される構成を示す。この例では、ターゲットICはCKINをACT8990をソースにし、かつFF1516および1518の動作のタイミングをとる。図からお判りのように、
図14AのPSCおよびSPC回路によりIC300へのTMSおよびTDI入力が
図14AのJTAGコントローラ100のTMSおよびTDO出力を遅延させるのと同様に、FF1516および1518によりターゲットICへのTMSおよびTDI入力がACT8990からのTMSおよびTDO出力を遅延させる。
【0088】
ACT8990の単純化されたブロック図はそれがTMS信号を送信する回路1504、TDO信号を送信する回路1506、TDI信号を受信する回路1510、およびTDI受信回路1510へのTMS信号1512入力を遅延する回路1508を含むことを示している。TDI受信回路はTMS信号1512に応答して、
図10のタップ状態図と同様に、いつTDI信号を入力するかを知る。この例では、全回路1504−1510がIC1520のTCK出力からのCKIN入力によりタイミングがとられる。
【0089】
ケーブル内にFFが存在しなければ、すなわち、ACT8990のTMSおよびTDO出力がターゲットICのTMSおよびTDI入力に直接接続されると、TMS遅延回路はTDI受信機へのTMS信号を遅延させないように設定される。この場合、TDI受信機1510はIC1520のタップがTDIデータを入力するのと同時にTDI受信機1510がTDIデータを入力するようにターゲットIC1520のタップと歩調を合わせて動作する。
【0090】
図示するようにFFがパス内に存在すれば、TMS遅延回路はTDI受信機の動作を1CKINサイクル遅延させてTDI受信機の動作をIC1520のタップの動作と同期化できるようにする。TDI受信機の動作を遅延させることにより、TDI受信機はIC1520のタップがTDIデータを入力するのと同時にTDI受信機1510がTDIデータを入力するようにターゲットIC1520のタップの遅延動作と歩調を合わせて動作するようにされる。
【0091】
ACT8990JTAGバス・コントローラチップの遅延回路1508は元々ケーブルに伴う遅延を補償するように設計されているが、本開示は遅延回路1508の特徴を利用して
図14AのPSCおよびSPC回路のシリアル化およびデシリアル化動作に伴う遅延を補償する。
【0092】
たとえば、
図14AのJTAGコントローラ100がACT8990チップを使用してJTAGバスを制御する場合、
図14Cのタイミング図に示すように、ACT8990の駆動回路1508はTDI入力がCKIN1472の立上りエッジで正しく受信されるようにIC300のタップドメインからのTDI入力を1CKINサイクルだけ遅延させるように設定することができる。このようにして、PSCおよびSPC回路のシリアル化およびデシリアル化プロセスによる上記した遅延問題はACT8990JTAGバス・コントローラチップまたは
図14Aのタップドメイン104からのTDIデータの入力を同様に遅延させることができる他のチップ/回路を内蔵するJTAGコントローラ100を使用して解決することができる。
【0093】
図16はJTAGコントローラ100およびPSC302の構成1602がDIO308およびCLK310信号配線を介してターゲットIC1604のSPC306およびタップドメイン104に接続される第1のシステム例を示す。この例では、構成1602内のクロックソース1606はPSCおよびSPC回路の動作のタイミングをとるCLK信号を駆動するのに使用される。この例では、ターゲットIC1604はDIOおよびCLK信号用の2つの専用ピンを必要とする。
【0094】
図17はJTAGコントローラ100およびPSC302の構成1702がDIO308およびCLK310信号配線を介してターゲットIC1704のSPC306およびタップドメイン104に接続される第2のシステム例を示す。この例では、ターゲットIC1704内のクロックソース1706はPSCおよびSPC回路の動作のタイミングをとるCLK信号を駆動するのに使用される。この例では、ターゲットIC1704はDIOおよびCLK信号用の2つの専用ピンを必要とする。
【0095】
図18はJTAGコントローラ100およびPSC302の構成1702がDIO308信号線を介してターゲットIC1802のSPC306およびタップドメイン104に接続される第3のシステム例を示す。この例では、外部クロックソース1804は機能的に必要なクロック入力ピンを介してIC1802へ機能的クロックを入力するのに使用される。外部クロックソースもPSC302のCLK信号を駆動する。SPC306のCLK入力はICの機能的クロックに接続されかつ駆動されるため、IC1802上にCLK信号310用の専用ピンは不要である。この例では、ターゲットIC1802はDIO信号用の専用ピンしか必要としない。
【0096】
図19はJTAGコントローラ100およびPSC302の構成1702がDIO308信号線を介してターゲットIC1802のSPC306およびタップドメイン104に接続される第4のシステム例を示す。この例では、機能的クロックがIC1902から出力されて周辺回路1904のクロック入力を機能的に必要なクロック出力ピンを介して駆動する。IC1902の内部で、機能的クロックはSPC306のCLK入力に接続されてそれを駆動する。IC1902の外部で、機能的クロックはPSC302のCLK入力に接続されてそれを駆動する。PSC302のCLK入力は外部機能的クロックに接続されるため、CLK信号310用の専用ピンはIC1902上に不要である。この例では、ターゲットIC1902はDIO信号用の専用ピンしか必要としない。
【0097】
図20はJTAGコントローラ100およびPSC302の構成1702がDIO308およびCLK310信号配線を介してターゲットIC1604のSPC306およびタップドメイン104に接続される第5のシステム例を示す。この例では、構成1702およびIC1604の両方の外部にあるクロックソース2002はPSCおよびSPC回路の動作のタイミングをとるCLK信号を駆動するのに使用される。この例では、ターゲットIC1604はDIOおよびCLK信号用の2つの専用ピンを必要とする。
【0098】
図16−20の上記したシステムにはインターフェイスがDIOおよびCLK用のせいぜい2つの専用ICピンしか必要とせず、そしてDIO用の少なくとも1つの専用ピンを必要とするようなPSCおよびSPC回路を一緒にインターフェイス接続するさまざまな方法が示されている。したがって、本開示はターゲットIC上に1つまたは2つの専用ピンしか必要としないことがわかる。
【0099】
以下の図面は本開示の代替バージョンを例示しており、SPC302およびPSC306回路はI/O回路504および710を使用しない。
【0100】
図21Aは代替PSC回路2102にインターフェイス接続されたJTAGコントローラ100を示す。I/O回路504がPSC回路2102内で使用されないことを除けばPSC回路2102は
図5AのPSC302と同じである。図からお判りのように、I/O回路504がないためPISO502からのOUT出力は出力バッファ1104を介してPSCから直接出力される。また、I/O回路504がないためTDO入力は入力バッファ1308を介して直接JTAGコントローラ100のTDI入力へ行く。
図21Bからお判りのように、代替PSC2102およびJTAGコントローラ100の動作タイミングは
図5AのPSC302およびJTAGコントローラ100の
図5Bのタイミング動作と同じである。
【0101】
図22AはターゲットIC2204のタップドメイン104にインターフェイス接続された代替SPC回路2202を示す。I/O回路710がSPC回路2202内で使用されないことを除けばSPC回路2202は
図7AのSPC302と同じである。図からお判りのように、I/O回路710がないためSPC2202へのOUT出力は第2の入力バッファ1308を介してMRS708およびSIPO702へ直接入力される。また、I/O回路710がないためタップドメイン104からのTDO出力は3状態バッファ1110を介して直接SPC2202から出力される。バッファ2206はTSM706からのOE信号によりイネーブルされる。プルアップ(PU)エレメント1114がIN信号に接続されており、上記した理由により外部駆動されない時に、IN信号をハイとする。
図22Bに示すように、代替SPC2202およびタップドメイン104の動作タイミングは
図7AのSPC302およびタップドメイン104の
図7Bのタイミング動作と同じである。
【0102】
図23AはJTAGコントローラ100および代替PSC2102がOUT,CLK,およびTDO信号を介してターゲットIC2302の代替SPC2202およびタップドメイン104に接続され通信する全体の構成を示す。簡単にするために、通信プロセスに伴う代替PSC2102およびSPC2202の回路素子しか示されていない。図からお判りのように、PSC2102からのOUT出力はSPC2202のIN入力に直接接続され、タップドメイン104からのTDO出力はJTAGコントローラ100のTDI入力に直接入力される。
図23Bからお判りのように、
図23Aの構成の動作タイミングは
図14Aの構成の
図14Bのタイミング動作と同じである。
【0103】
図24は
図16のシステムの上記したクロッキング構成を例示している。
図24において、PSC302の替わりに代替PSC2102が使用され、SPC306の替わりに代替SPC2202が使用される。図からお判りのように、IC2402はOUT,TDO,およびCLK用の3つの専用ピンを必要とする。
【0104】
図25は
図17システムの上記したクロッキング構成を例示している。
図25において、PSC302の替わりに代替PSC2102が使用され、SPC306の替わりに代替SPC2202が使用される。図からお判りのように、IC2502はOUT,TDO,およびCLK用の3つの専用ピンを必要とする。
【0105】
図26は
図18システムの上記したクロッキング構成を例示している。
図26において、PSC302の替わりに代替PSC2102が使用され、SPC306の替わりに代替SPC2202が使用される。図からお判りのように、IC2602はOUTおよびTDO用の2つの専用ピンを必要とする。
【0106】
図27は
図19システムの上記したクロッキング構成を例示している。
図27において、PSC302の替わりに代替PSC2102が使用され、SPC306の替わりに代替SPC2202が使用される。図からお判りのように、IC2702はOUTおよびTDO用の2つの専用ピンを必要とする。
【0107】
図28は
図20システムの上記したクロッキング構成を例示している。
図28において、PSC302の替わりに代替PSC2102が使用され、SPC306の替わりに代替SPC2202が使用される。図からお判りのように、IC2402はOUT,TDO,およびCLK用の3つの専用ピンを必要とする。
【0108】
図24−28の上記したシステム例はインターフェイスがOUT,TDOおよびCLK用のせいぜい3つの専用ICピンしか必要とせずOUTおよびTDO用の少なくとも2つの専用ピンを必要とするような代替PSC2102およびSPC2202回路を一緒にインターフェイス接続するさまざまな方法を示している。したがって、本開示の代替バージョンはターゲットIC上に2つまたは3つの専用ピンしか必要としないことがわかる。
【0109】
図14A,14B,14C,23A,および23Bについて、CKINおよびTCK信号の周波数はCLK信号を駆動するソースの周波数の半分である。したがって、JTAGコントローラおよびタップドメインはCLKソースの周波数の半分で一緒に動作する。たとえば、CLK周波数が100MHzであれば、JTAG動作は50MHzで生じる。このようにして、標準5ピンJTAGインターフェイスの半分の周波数で動作できる減少ピンインターフェイスを提供するという、背景技術の説明で説明をした本開示の第2の利点が達成される。
【0110】
本開示のSPC306および2202はIC内のタップドメインをアクセスするのに使用されるものとして示されてきたが、SPCはIC内のタップドメインのアクセスに限定されない。事実、所望により、SPCはICの組込コア回路内で使用してこれらの組込コア回路内に存在するタップドメインをアクセスすることができる。IC内でSPCをどのように使用するかという本開示の教示は十分詳細なものであり、当業者ならばSPCを埋込コア内で使用することもできる。
【0111】
当業者ならば、特許請求された発明の範囲を逸脱することなく、記述された実施例にさまざまな追加、削除、置換または他の修正を行うことができる。