JTAG

JTAG

テスト技術の一つ。読み方はジェイタグ。Joint Test Action Groupの略で、もともとは作業部会の略称だったが、そのままIEEE 1149.1標準の名称になった*1

JTAGには大きく二つの使い方がある。ひとつがバウンダリー・スキャンで、もうひとつがエミュレーションである。いずれも基板に作った小さなTAP(Test Access Port)にポッドを装着することで試験を行う。TAPはメーカーによって異なるが、14、16、20ピンなどが多い。

バウンダリー・スキャン

ボード上のピンをJTAGテスト装置から自由に制御するテスト方法。ボード上のJTAG対応素子の間の結線はバウンダリー・スキャンによって導通・短絡テストを簡単に行える。これを実現するために各素子はJTAGポートを使って簡単にデイジーチェーン接続できるようになっている。

JTAG対応プロセッサをバウンダリー・スキャンによって乗っ取って、JTAG比対応フラッシュROMをプログラムするといった芸当もある。

エミュレーション

プロセッサ内部パイプラインを乗っ取って命令を無理やり書き込むと、任意のプログラムをステップ実行していくことができる。この技術を使うとゆっくりだがメモリー・ダンプ、書き換え、レジスタ・ダンプ、書き換えなどが自由に行える。また、チップ内蔵デバッグ回路を使ってウォッチポイントやブレークポイントなども実現できる。これがJTAGエミュレーション機能である。

たいていのプロセッサのエミュレーション機構は非公開だが、Motorola DSP56002のOnCEポート*2はこの部分が公開されていて興味深い。

そのほか

独自ICなら内部レジスタ資源にJTAGポートからアクセスできるようにしておくことで、複雑なLSIのデバッグにも利用できる。

*1:規格作成当時は、JPEGMPEGのように作業部会の略称をそのまま標準の名前にすることが流行っていた

*2JTAGに非常に近い

* はてなダイアリーキーワード:JTAG