JTAG総合情報サイト>JTAGとは何か>JTAG技術的解説>スキャンレジスタ

スキャンレジスタ

レジスタへの値の入出力

 JTAGのレジスタに値を入出力する手順として、長さ6の命令レジスタに値を入出力する例を見てみます。この例では、セットする値は"101010"とします。

 まず、最初に、シフトレジスタには図8(a)のように不明な値が入っていると考えます。

 

図8(a) 初期状態

 

 

TAPコントローラを遷移させ、Captureステートに達すると、図8(b)のようにシフトレジスタに値がセットされます。選択しているのが命令レジスタなので、セットされる値は"IRステータス"です。ステータスの下2ビットは常に01になっていますが、それ以外のビットはデバイスの品種や、そのときの状態によって決まる値です。

 TAPコントローラがCaptureステートのとき、TCKの立下りのタイミングでシフトレジスタの最後のビットが、TDOから出力されます。

図8(b) Captureステート

 

 次に、TAPコントローラはShiftステートに遷移します。ShiftステートのTCKの立ち上がりでTDIの値がサンプリングされ、図8(c)のようにデータは1ビットシフトします。そして、TCKの立下りで最後のビットがTDOから出力されます。

 

 

図8(c) Shiftステート

 

 シフトレジスタの長さ分のTCKを受け取ると、図8(d)のように最初にシフトレジスタに入っていた値はすべてTDOから出力され、シフトレジスタはTDIから受け取った値で埋め尽くされます。すなわち、データの入出力が完了したことになります。

図8(d) Shift完了時の状態

 

 

 Shiftステートを抜けるとUpdateステートに入ります。Updateステートでは図8(e)に示したように、シフトレジスタの各ビットの内容がラッチされ、ICの内部回路に伝わります。

 

図8(e) Updateステート