はじめに
JTAGは既に確立された技術(そして業界標準)ですが、近年、その可能性が注目され始めています。接続テストとインシステムプログラミング(ISP:In System Programming)の2つは、JTAGの最も一般的なアプリケーションです。しかしながら、他にも多くの注目すべき技術があります。
JTAGの能力を最大限に活かすXJTAGは、この記事に紹介される全てのJTAG機能を実装しています。
背景
JTAGは、従来のプローブ治具(ネイルベッド治具)を使用して回路をテストする際の困難に対処するために考案されました。BGAやチップスケールパッケージングなどの最新のパッケージングテクノロジーでは、ピン*への物理的なアクセスが制限されています。(*ここで 「ピン」は、リード付きデバイス接続とBGAはんだボール接続の両方です)。
図1 単純なJTAGデバイス
JTAGは、外部接続とデバイスの内部ロジックの間にセルを配置することで、この問題を解決します。図1を参照してください。セル(JTAG Cells)をシフトレジスタとして構成することで、JTAGを使用して、直接の物理的アクセスをすることなしに、ピン(およびそれらに接続されたネット)の値を設定および取得できます。
デバイスの通常動作中に、コアロジックとピンの間を通過するデータ値をサンプリングするオプションもあります。
JTAGインターフェースは、各デバイスに4つのピンを追加します:TDIはデバイスにデータを入力し、TDOはデバイスからデータを出力し、TMSはデータとクロック信号で行うべきことを制御し、TCKはすべてを同期します。
デバイスがJTAG準拠であるためには、その製造元は、デバイスのJTAGの側面がどのように機能するかを説明するBSDL(Boundary Scan Description Language)ファイルを提供する必要があります。
回路に複数のJTAG準拠なデバイスがある場合、これらを一緒にリンクしてJTAGチェーンを形成できます。JTAGチェーンでは、最初のデバイスからのデータ出力が2番目のデバイスへのデータ入力になります。制御とクロック信号は、チェーン内のすべてのデバイスに共通です。図2は、3つのデバイスを含む単純なJTAGチェーンを表しています。
図2 単純なJTAGチェイン
BGA:ボールグリッドアレイ
図3 BGAデバイス
図3に示すようなBGAパッケージは、外部接続のすべてが、デバイス側面から突き出たピンではなく、デバイスの底面とプリント基板の間のはんだボールを介して行われるという点で、以前のパッケージテクノロジとは異なります。
BGAデバイスを持った回路のテストが、JTAGテストの普及する原動力の一つになりました。デバイスと回路基板の間の接続にアクセスできなくなり、目視検査が同様の結果になった今、JTAGを使わずに有用な情報を得られるただ1つの方法は、X線検査です。この高価で時間のかかる手順では各々の基板がX線にさらされることになります。また、ボールが正しい位置にあること、基板との接続が正しいこと、デバイスが無傷であることは検査できますが、回路の短絡を引き起こす半田の伸張は検査できません。この手順では、手動・自動の違いはあるものの未だ目視に頼っており、結果として、全てのエラーを探し出すことが出来ません。
このような状況において、JTAGによる接続テストは、剣山方式のテストに変わる有用な代替手段から、X線技術を不要にする重要な経費節減ツールになっています。
JTAGチェーンの完全性試験
JTAGテストは、ごく基本的なものから、非常に高度なものまであります。テストの最も基本的な形式は、チェーンの整合性テストです。つまり、JTAGチェーン内にあるJTAGデバイスが実際に存在するかどうかをテストします。
ほとんどのJTAG準拠デバイスには、デバイスが所定の位置にあり、JTAGチェーンが正しく接続されていることをテストするために使用できるIDコードを持っています。IDコードを持たないデバイスでも、常に値が0の単一ビットを返すので、IDコードの有無にかかわらず、JTAGチェーン上のデバイスの正しいシーケンスについてテストすることができます。
接続テスト
図4 接続テストの例
接続または相互接続テストは、回路基板内のJTAG対応コンポーネント周りの接続をチェックします。これらネットの接続には、4つのカテゴリの障害が発生し得ます。短絡、開回路、スタックの障害、プル抵抗障害です。これらの障害の例を図4に示します。
JTAG接続テストでは、JTAG準拠デバイス間のネットの障害は完全に評価します。片側で信号を設定し、相手先で読み取ることで、オープン回路の障害も確認します。JTAG対応の接続が1つ(片側)だけのネットの場合は、短絡障害を検査できます。良くできたバウンダリスキャンツールであれば、非常に包括的なテストパターンの生成を自動化して、多くの場合、人手による作業を最小限に抑えて、接続テストを実装します。
電子回路実装基板のはんだ短絡などの製造上の欠陥がチェックされる接続テストは、製造検査のプロセスにおいて非常に有用なツールです。BGAデバイスが搭載され、視覚的な検査や物理的なプローブが使用できない場合、JTAG接続テストの価値は明確です。
非JTAGデバイスのテスト
電子回路実装基板上の非JTAG準拠セクションもテストされます。非JTAGデバイスへの入力は、これらがJTAG準拠デバイスに接続されたネットを共有している場合は、JTAGを介して制御されます。同様に、非JTAGデバイスの出力は、JTAGデバイスを介して読み戻すことができます。したがって、JTAGに準拠しないセクションの動作に関する設計者の知識により、JTAGを介してデバイスの機能を評価するテストを構築して実行することができます。
この形式のテストは、単一の非JTAGデバイス、または回路内で1つの機能ユニットになる非JTAGデバイスのクラスターに適用できます。この手法の重要な例の1つは、メモリテストです。情報をメモリに書き込むために、メモリデバイスの制御信号とアドレスおよびデータバスを操作する一連のJTAGテスト信号が作成されます。そして、この情報を読み返す、テスト信号の2番目のシーケンスが作成されます。
インシステムプログラミング
FPGAやCPLDなどの最新のプログラマブルデバイスの多くは、バウンダリスキャンテスト以外に、PCBに実装された後からでもプログラミングするためにJTAGを使用します。
またフラッシュメモリなどの他のデバイスは、JTAGチェーン内のデバイスへの接続を介して間接的にプログラムされます。
JTAGを使用してデバイスを「システム内」でプログラムする機能により、高価なプログラマーとソケットを購入する必要がなくなります。また、デバイスに保持されているメモリイメージを簡単に更新できるという利点もあります。
テスト容易化設計
JTAGは、電子回路実装基板のライフサイクル全体にわたって有用なツールであり、設計エンジニア、量産テストエンジニア、フィールドテストエンジニアの各種テストやデバッグ作業を支援します。
その有効性は、JTAGテストのカバレッジに依存します。その可能性は回路に依存しますが、設計時にテストの容易性に注意を払うことで最大限に高めることができるでしょう。
JTAGテストの容易性を向上させるノウハウを紹介する テスト容易化設計(DFT)ガイドラインは、XJTAG Webサイトで公開しています。まず少なくともJTAGテストを有効にするために、すべてのJTAG準拠デバイスが適切に接続され、適切なテストアクセスポート(TAP)が回路に設計されていることを確認してください。
資料
JTAGの技術について
JTAGに関する詳しい情報
JTAGとは何ですか?
どのように使用できますか?
テスト容易化設計(DFT)ガイドライン
テスト容易性を改善するコツ
XJTAGを使用したJTAGテスト
JTAGを最大限に活用するXJTAG