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

JTAGとは何か

JTAG(ジェイタグ)とは、シリアル通信でICの内部回路と通信する仕組みです。

最初にJTAGが登場したとき(1990年ごろ)は、「基板検査」のための標準規格でした。

しかし、その手軽さゆえに、いまでは各メーカーがオプション機能やプライベート命令を使って勝手に拡張し、もはや「総合デバッグインタフェース」として使われています。

インタフェースの仕様は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の応用についての解説 (PDF)

JTAGについてのご質問は

掲示板「JTAGなんでも相談室」をご利用ください。無料で質問できますが、オープンにできない情報はご遠慮ください。

JTAGについての開発依頼

JTAG技術サービスをご覧ください。

ハード/ソフトの開発、オープンにできない技術相談などを承ります。

 

今後のJTAGの発展と展望

基本的にFPGAメーカーやCPUメーカーは、JTAGの詳細情報を出したがりません。

かつては書き込みアルゴリズムを共通化しようとしたIEEE1532や、CPUのデバッグを共通化しようとしたNexusなどという動きもありましたが、全く普及していません。わざわざ競合他社と共通のプロトコルで何かをする必要性がないためです。FPGAやCPUのプライベート命令やプライベートレジスタは、今後ますますプライベート化していくでしょう。

高速シリアル通信に使われるIEEE1149.6はチップ自体には実装されているようですが、あからさまな非同期回路がFPGAの中に入るわけなので、気持ちが悪いとしかいいようがありません。どれほど普及しているかは疑問です。

また、アナログJTAGについても規格が制定されてから20年近く経ちますが、普及の見込みはまったくなく、2線式JTAG(cJTAG)については、推進していた一部のメーカーしか積極的には採用していません。

このように、JTAGの新しく出た規格はどれも成功しているとは言い難い状況です。

その理由は、最も基本的なIEEE1149.1で十分だから & 各ICメーカー独自のデバッグ技術をわざわざ競合と一緒にしたくない というはないでしょうか。

今後、IEEE1149.10といってSPIやEtherを通じた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つのソフトウェアで実現できてしまいます。

 

【PR】