XJTAGを使ったJTAGテスト
概要
リアクティブに(実行結果に応じて)テストパターンを生成する機能、及びデバイスセントリックというJTAGの抽象化概念を導入することで、XJTAGは10年進んだ技術を提供しています。
テストは回路のライフサイクル全体を通じて不可欠なものです。BGAや他の同様なパッケージング技術の出現によって、JTAGがテスト技術の最前線に貢献できるようになりました。
XJTAGはJTAGの最大限の能力を引き出しているだけではなく、テストシステムの構築手順をテスト実装の技術的詳細から抽象化しています。
従来のJTAGツールはJTAGデバイス間の接続テストを実行することは可能ですが、回路上には、物理的にもJTAGを使ってもテスト出来ないJTAG未対応デバイス(BGAパッケージを利用しているケースも多くあります)がたくさん実装されています。
これに対して、XJATGは、回路内のデバイスの状態を反映させるように、テストの動作を対応させることが出来ます。それ故に、殆どのJTAG未対応デバイスの機能テストを実現します。
XJTAGの接続の完全性と回路の機能をテストする能力は、1つ以上のJTAG対応デバイスを実装した全ての回路に於いてかけがえのないものになっています。
JTAG技術の基礎的な知識が無くても、XJTAGのテストシステムが開発できます。XJTAGが基本にしているデバイスセントリックな手法を使えば、回路を参照する事無く、テストしようとしているデバイスの観点からテストを記述できます。つまり、デバイスのデータシートを理解できる技術者であれば、XJTAGのテストを記述可能です。
デバイスセントリックな手法の優位点は、デバイスの為に書かれたテストが何時でもどんな回路に対してでも利用可能な点です。XJTAGはテストを含んだデバイスファイルのセットと共に提供されます。その為、全くテストコードを記述する事無く、テストシステムを構築可能です。
XJTAGを使用することで、設計前の段階からフィールドサポートに至るまで、より早く、より簡単で、より効果的な回路テストを実現できます。
設計前段階
回路設計を行う前に重要なことは、テスト容易性設計の方針を意識した設計を行うことです。XJTAGのdesign for testガイドラインを使えば、JTAG標準に対応しているかどうかに関わらず、全てのデバイスのテストカバレージを最大限に引き出す様な究極の設計が出来るでしょう。
設計の検証
テストの工程は最初の回路基板が生産されたところから始まるでしょう。設計が完了すれば直ぐに、XJTAGのテストシステムの基盤としてネットリストが使えます。XJTAGは、ハードウェアが無くてもテスト容易性設計のレポートを出力でき、仕様に基づいたテスト実装する為に必要な全ての接続が回路レイアウトに含まれているかをチェックできます。
生産に先立って、レイアウト上でテスト容易性をチェックすることで、後工程で回路設計を修正することで発生する時間とコストを節約できます。
回路のテスト
XJTAGのテストは、回路の(JTAGチェイン全体でさえも)全が出来上がる前に始められます。1つ以上のデバイスのJTAGチェインが利用可能であれば、直ぐにテストが始められます。
回路の完成がXJTAGのテストシステム導入の前提条件で無いために、より早い段階でのテストプロセスの開始と不良の発見に繋がり、設計サイクルの短縮が実現できます。XJTAGがデバイスセントリックな方法を取っているために、初期段階で作成したあらゆるテストが無駄にならず、後工程でより高機能なテストシステムの一部を形成する為に簡単に修正して再利用できます。
どんな割合の回路完成度でも、テストの工程は同じです。
テストシステムと回路の接続
テストを開始するためには、テストシステムと回路を接続する必要があります。XJLinkは、USBインターフェースを使って、あらゆるPCからの高速JTAGアクセスを実現します。
XJLinkが全てのライセンス情報を持っている為、XJTAGのテストシステムは素早く簡単に利用場所を変更できます。例えば、実験室で標準的なデスクトップPCを使用し、現場ではラップトップPCを使うことが出来ます。
XJLinkには、テスト対象回路に合わせてJTAGのピン配置を設定できる柔軟な機能を持っています。Multiice™ Xilinx™ Altera Byte Blaster™等の標準的なピン配置が選択可能です。また、標準的ではない他の特定のピン配置に設定することも可能です。
XJLinkには、全機能を使用可能なAPIが付属します。このAPIを使えば、XJTAGのハードウェアインターフェースを使用した独自のJTAGアプリケーションを開発できます。
JTAGチェインの検証
回路が準備できれば、XJTAGのテストシステムを実装する次の段階として、JTAGチェインの完全性を確認します。XJAnalyserは、容易に回路のデバッグと素早いチェインの検証が行えるグラフィカルなツールです。
ウィザードが用意されているために、XJAnalyserのセットアップはきわめて簡単で迅速に行えます。
テスト対象回路に対する正しい設定を確立することで、XJAnalyserはJTAGチェインの完全性をチェックします。
JTAGチェインの完全性は、チェイン内の各デバイスからIDコードを抜き出すことで実現されます。
妥当なチェインが確立されれば、XJAnalyserは抜き出したIDコードでライブラリ内の適当なBSDLファイル特定します。BSDLファイルは各デバイスのJTAG標準の実装を定義しています。
XJAnalyserがプロジェクトベースのツールある為に、一旦プロジェクトを作成すれば、必要に応じてプロジェクトの保存や読み込みが可能です。
![]() |
| 図-1 XJAnalyserのメイン画面(チェインウィンドウ) |
図-1は、XJAnalyserの2つのデバイスからなるJTAGチェインを表示しているスクリーンショットです。一方のデバイスは通常パッケージで、もう一方はBGAデバイスです。
ピンの色は現在の値を示しています。XJAnalyserでは、出力ピンと双方向ピンの値を、ハイ、ロー、高速発振、低速発振に設定できます。
図-1で分かる様に、XJAnalyserは回路内のピンに関する情報をデバイス毎に表示(右側の領域のピンリスト)します。また、選択したピンを表示(下側のピンウォッチ)することも可能です。これにより、所定のピンの特定の情報に直接アクセスすることが出来ます。
JTAGチェインの完全性が検証できれば、XJTAGのテストシステムを実装する次の段階として、製造上の不良をチェックします。
![]() |
| 図-2 短絡の例 |
XJTAGの接続テストは、短絡、断線、電源へのスタックの3種類の製造上の不良を見つけます。独自の接続テストアルゴリズムで、回路テストのカバレージを容易に高めることができ、不良の正確な原因と場所が容易に発見できます。
図-2は大多数のJTAG接続テストで問題となる状況を示しています。殆どの従来の接続テストで用いられているアルゴリズムでは、NetCとNetDの短絡は検出できますが、NetAとNetBの様に直列抵抗を介した短絡は検出できません。XJTAGの接続テストアルゴリズムはこの問題を解決します。
XJTAGのテストは対象回路の現況に対応する能力があり、より改善された不良報告が得られます。不整合が発見された場合は、その不要の場所と原因を特定するために、より多くのテストが自動的に生成されます。
JTAG 未対応デバイスの機能テスト
最も効果的な接続テストでさえ、回路内の全ての接続はテスト出来ません。XJTAGのテストパターンを生成する方法を使って、広範囲のJTAG未対応デバイスの機能テストが実現できます。それによって、JTAGを使ってテスト出来る領域がJTAGチェインから離れた領域に広がります。
図-3に示されているXJTAGテストシステムにおいて、JTAG未対応デバイスのテストはXJEaseのデバイスファイル(Device Files)によって制御されています。これらのデバイスファイルは、テストされる各デバイスの為の高レベルのテスト記述を含んでいます。しかしながら、特定のテスト対象回路内でのテストの実行方法に関する記述は全くありません。その為、開発された全てのテストが、同一プロジェクト内でも、他のプロジェクトでも、再利用可能になります。
XJEngineはデバイスのテストを実行するためのテストパターンの生成を担います。
“ピンに値を設定することで、テストパターンが何を行うか?“は(プロジェクトファイルに由来する要求を満たす為にテストパターンを生成する上で必要な情報である)デバイスファイルで制御されます。
![]() |
| 図-3 XJTAG テストシステム |
全てのテストパターンはシステムの実行時に生成されます。これは、XJEnginが回路内にあるデバイスの現在の状態を、XJEaseのデバイステストを制御する為にフィードバックできることを意味します。この情報はXJEngineが次に生成するべきパターンをプログラムに基づいて制御する為に使用されます。
プログラムに基づいた制御とリアクティブに(実行結果に応じて)テストパターンを生成する機能をJTAGのテストに導入することで、テスト出来るデバイスと回路の割合を引き上げることが出来ます。テストを可能にする為に特定の状態に設定する必要のあるデバイスを判断してください。XJTAGのテストシステムを使えば、デバイスをテスト可能な状態にする為に駆動しなければならないピンを、XJEaseで簡単に定義できます。その後、デバイスが所定の状態になったことを示す値がデバイスから読み取られるまで、繰り返しデバイスの状態を読みこみます。所定の値が読み取られれば、テストは次に進みます。この種のデバイスのテストは、XJTAGの回路との相互作用によってのみ実現可能です。
XJTAGにおける複数のレベルでの抽象化により、テストシステムが非常に迅速に開発できます。
XJTAGのデバイスセントリックな手法の核心であるデバイステストの回路実装からの抽象化により、2つの大きな恩恵がもたらされます。まず、テスト開発の工程がより簡単になります。(値を設定するべきピンと結果として得られるべき値を単純に定義することで、テストが作成されます。)次に、開発したテストは、そのデバイスが他の回路で使用される度に再利用可能で、回路のネットリストに対するどんな変更があっても、テストシステムに対する修正が必要ありません。



