JTAG総合情報サイト>JTAGとは何か

JTAGとは何か

JTAGとは、シリアル通信でICの内部回路と通信する仕組みです。

最初にJTAGが登場したとき(30年前)は、「基板検査」のための標準規格でした。
しかし、その手軽さゆえに、いまでは各メーカーがオプション機能やプライベート命令を使って勝手に拡張し、もはや「総合デバッグインタフェース」として使われています。

インタフェースの仕様はIEEE1149.1で定められていますが、実際には半導体メーカーがプライベート命令やオプションレジスタを使って拡張しています。

CPUデバッグやFPGA/CPLDシーケンスといった機能は、プライベート命令やオプションレジスタを使って実現しているので、半導体メーカーとNDAを結んだサードパーティしか知ることができないことが多いです。… さらに詳しく知る

JTAGという名前の由来

JTAGとは、規格を策定した団体の名称です。JTAGのGはGroupの意味です。
※画像の企画のJPEGも、GはGroupの意味です

なお、J-TAGと書くのは誤りです。JTAGと続けて書いてください。

JTAGの信号線

JTAGは4本の信号で、いろいろな信号をやりとりします。

  • TCK(クロック)
  • TDI(データ入力)
  • TDO(データ出力)
  • TMS(状態制御)

このほかに、TRSTというリセット信号が含まれる場合があります。

JTAG信号の電気的特性

これらの信号の電気的特性は、規格では定められていません。
各デバイスごとに、CMOSだったり、LVTTLだったり、LVCMOS18だったり、まちまちです。

JTAGは何ができるの?

FPGAの書き込みや、CPUのデバッグ、基板検査、ICの内部回路とパソコン間での通信などができます。… さらに詳しく知る

JTAGのプロトコルは公開されているの?

JTAGの規格(IEEE1149.1)で定められているのは、JTAGのごく基本の手順のみです。最近のJTAG対応Iデバイス、各ICメーカーがプライベート命令を使って拡張し、いろいろなオプション機能をつけています。

例えば、FPGA、CPLDの書き込みやCPUのデバッグはプライベート命令を使って実現します。しかし、それらの拡張機能はデバイスメーカーが公開していないことが多いため、その使い方は簡単にはわかりません。

一応、デバイスプログラミングの標準化規格には「IEEE1532」というのもありますが、全く普及する気配はありません。原則としてデバイスメーカーは不揮発性デバイスの書き込みアルゴリズムは公開したがりません。

CPUのデバッグについてもNEXUSというのがありましたが、これも普及の気配はありません。CPUは品種ごとに中身が相当異なるので、パフォーマンスを保ちつつ一般化するのは難しいのでしょう。

 

JTAGのプロトコルを通信の階層として考えると、次の図のようになります。

JTAGのプロトコル

 

実際、ほとんどのJTAGの応用例は拡張機能によるものです。

面白いアプリケーションを実現したい場合には、原則としてプライベート命令やオプション機能などをメーカーから開示してもら… 続きを読む

 

JTAGのソフトウェア

JTAGはあくまでも「規格」なので、使うためにはソフトウェアが必要になります。

JTAGはFPGAの書き込みや、CPUのデバッグ、基板検査、ICの内部回路とパソコン間での通信などができますが、それぞれ別のソフトウェアを使わなければなりません。

やりたいこと 使うソフトウェア 参考価格(他社製品)
CPUのデバッグ JTAG-ICEと呼ばれるソフトウェア A社 100万円 B社 100万円
基板検査 基板検査ソフトウェア C社 150万円 D社1000万円
端子可視化 端子可視化ソフトウェア E社 150万円
FPGAの書き込み FPGA設計ツールに付属 F社 0円
ロジックアナライザ FPGA設計ツールに付属 F社 0円
FPGAとPCの通信 市販されていない -

ベンダ標準のFPGAの書き込みツールでは、FPGAの端子の可視化はできません。また、端子可視化ツールではロジックアナライザはできません。

やりたいことに応じて、JTAGのソフトウェアをいくつも揃えなければならないのはユーザにとって金銭的にも労力的にも負担となります。

すべてのJTAGでできることを1つのソフトウェアでやろうというプロジェクトがあります。

2003年に「未踏ソフトウェア創造事業」で採択された「包括的JTAGサポートソフトウェア MITOUJTAG」というソフトウェアがそれで、MITOUJTAGを使えば、上の表にあるようなことが1つのソフトウェアで実現できてしまいます。

JTAG情報バナー