MITOUJTAGとは何か
製品について
ご購入を検討中の方へ
サポート
JTAGについて
JTAG技術サービス(有料)
JTAG開発日記
JTAGを熱く語る
TAPコントローラ
TAPコントローラの状態遷移
TAPコントローラはTMSによって制御される16状態のステートマシンです。各ステートには名前がついており、TCK信号の立ち上がりによって図7のように遷移します。TAPコントローラには、ステート名の末尾が-DRとなっているデータレジスタを制御するステートと、末尾が-IRとなっている命令レジスタを制御するステートの、2つの主要なパスがあります。これらのパスは対象となるレジスタが異なるだけで基本的な動作は同じものです。

図7 TAPコントローラの遷移
なお、TAPの現在の状態が不明であっても、TRSTをLに遷移させるか、もしくはTMSをHに保った状態でTCKに5回のクロックを入力すると、必ずTEST-LOGIC-RESETステートに遷移するようになっています。
次に、各TAPの状態の動作を詳しく解説します。
■CAPTUREステート
CAPTUREでは、シフトレジスタに値がロードされます。ロードされる値は、バウンダリスキャンレジスタが選択されている場合であれば各I/O端子の状態であり、命令レジスタが選択されている場合であれば、"IRステータスワード"という値になります。
■SHIFTステート
このステートでは、TDIから取り込まれた新しいデータがシフトレジスタに入力され、シフトレジスタの古い内容がTDOに出力されます。すなわち、このステートを通過するたびにデータが1ビット分シフトします。複数のビットをシフトしたい場合は、TMSをLに保ったままTDIにデータをセットし、TCKに必要な回数のクロックを入力します。最後のビットをシフトする際にはTMSをHにしてクロックを与えます。
JTAGのレジスタの長さは、デバイスの種類やそのときの状態によって変わります。したがって、TDIから与えたデータが、希望するICの希望するセルの位置にたどり着いたかどうかは、制御プログラムが正確に把握していなければなりません。複数のJTAGデバイスをチェーン接続すると、全体のレジスタ長も変わってくるので、シフトの回数には十分な注意が必要です。
■UPDATEステート
このステートでは、シフトレジスタの内容がラッチされ、ICの内部回路に与えられます。バウンダリスキャンを行っていれば各端子の状態が更新されます。インストラクションレジスタが選択されていれば、各コマンドが発効されます。
■その他のステート
Test-Logic-Resetステートは、テストロジックをリセットする状態です。TRST信号をLに遷移させた場合や、TMSをHに保ったままTCKに5回のクロックを与えるとこのステートに到達します。
Run-Test/Idleはいわゆるアイドル状態で、このステートには無制限にとどまっていることができます。また、このステートではBuilt-in Self Testなどの特定の命令が実行されることがあります。
SelectやExitなどのステートは、一時的に通過するためのもので、特に機能はありません。Pauseステートはシフト動作を一時的に停止させるためのステートで、一説によるとTCKを止めることができないJTAG制御装置で使われるそうです。


