JTAGについて (その1)

 よくわからんかったので、調べたことをまとめる。

 JTAGは、Joint Test Action Groupの略で、バウンダリスキャンテストを規格した規格団体の名称。JTAGテストに対応したデバイスとは、デバイスの内部ロジックと各ピンとの間にセルというシフトレジスタを配置して、これを通過する信号を監視したり、任意データを注入したりすることが出来るようにした構造も持っているICのことをいう。

 さらに詳しくは、
(1) http://ja.wikipedia.org/wiki/JTAG
(2) http://www.tokudenkairo.co.jp/jtag/tech/index.html
(3) JTAGテストの基礎と応用:CQ出版、エッセンスシリーズ

 ただし、完全にJTAGの規格に準拠していない場合もある。例えばICEの一種として、CPUやFPGAにアクセスする手段としてJTAGを用いる場合である(紛らわしい)。JTAGはあくまで通信用のプロトコルみたいな感じで利用する。IEEE 1149.1に規定した必須命令をサポートしてないし、典型的なバウンダリスキャンの配置(ピンとロジック回路との間にセルを置く)もされていない。JTAGで抑えておきたいのは、(1)JTAGピン、(2)セル構造と、(3)それを組み合わせたスキャンレジスタの種類、(4)TAPコントローラである。以下に示す。

 JTAGピンは、4本である。ピン数に制限のあるICの場合は他の端子と併用されていて、例えば、TESTピンのみ一つ割り当ててTESTピンをhighにしたときに端子の役割が切り替わるようになっている場合もある。

信号線 機能
TDI テストロジックに対して、命令やデータをシリアル入力する信号で、TCKの立ち上がりエッジでサンプリングされる。
TDO テストロジックのデータをシリアル出力する信号で、TDOの出力値の変更はTCKの立下りエッジで行う。
TCK テストロジックにクロックを供給する。シリアルテストデータ経路をコンポーネント固有のシステムクロックと独立して使用できるようにする専用入力。
TMS テスト動作を制御する信号で、TCKの立ち上がりエッジでサンプリングされる。この信号はTAPコントローラをデコードする。


 セル構造は、DinのデータをDoutに単に通過させる機能、Dinのデータを捕捉する機能、捕捉したデータをTDI-TDO経由でシフトさせる機能、捕捉したデータをアップデートしてDoutから出力する機能を持っている。セルの典型的な回路図を示す。

 複数のセルの端子TDO、TDIを数珠繋ぎにしてシフトレジスタを形成する。レジスタは、大別すると

(1) インストラクションレジスタ(IR)と、
(2) データレジスタ(DR)

に分けられる。インストラクションレジスタは基本的に一つで、データパスを制御するために必要である。データレジスタは、さらに、ピンとロジック回路との間に配置されるバウンダリスキャンレジスタバウンダリスキャンをさせずにTDIのデータをTDOに素通りさせるバイパスレジスタ、ICのコードを記憶させたIDレジスタに分けられる。

 ただし、注意したいのは、データレジスタの形態はJTAGの利用方法に依存する点である。例えば、CPUへのアクセスとしてJTAGを利用する場合、データレジスタはアドレスバスへのデータ転送および受信に利用するシフトレジスタと、データバスへのデータ転送および受信に利用するシフトレジスタ、CPUのステータスを制御するシフトレジスタの3つになる。

 TDI(TDO)がデータを渡す(もらう)スキャンレジスタの選択[ IRかDRかの2択のみで、DR内でさらに細分化されたレジスタの選択は事前に書き込まれたIR内のデータで制御 ]と、各スキャンレジスタの状態制御(S-DR, SCLK, U-DR)は、TCKとTMSの信号からTAPコントローラがデコードして行う。TAPコントローラは16ステートマシンで、現在いるステートから次のステートへ遷移するかしないかは、TCKの立ち上がりの時にTMS信号の値によって決定される。

 基本動作は、捕獲(Capture)、シフト(Shift)、更新(Update)である。また、CPUへのアクセスとしてJTAGを利用する場合、アイドリング(Run-Test/Idle)の状態の時に、CPUへのシステムクロックを外部から入力出来るようにして、ステップバイステップで、プログラム動作を検証することも可能になる。


 インストラクションレジスタに用意されている命令コードについては、時間がなくなったのでまた次回。

最後に、、、

このページの図は、inkscapeというフリーのベクトル画像編集ソフトをお試しで使いながら作成しました。Space、Shift、ctl、tabキーを上手く使うとすごく効率的に図が描けることがわかりました。感動しました。

http://inkscape.org/doc/keys048.html

JPEG出力できませんが、かなりお勧めです。PowerPointの作図に不満を持っている人、イラストレータを買うお金のない(私のような)人はぜひぜひ使ってみてください。なお、インストール直後の日本語入力が文字化けします。書体が「Sans」になっているので変えて下さい。わたしは再インストールすれば良くなるというQ&AをWebで見つけたばかりに回り道をしてしまいました、、、