BSDLファイルの非標準セルタイプ

はじめに

IEEE標準 1149.1は、バウンダリスキャン記述言語(BSDL)を定義しています。この言語は、IEEE 1149.1標準に準拠するコンポーネントのテスト容易性機能を記述しています。このBSDLファイルは、JTAGに準拠したコンポーネントのテスト機能をJTAGテストツールが使用するために必要です。BSDLはVHSICハードウェア記述言語(VHDL)(IEEE Std 1076)に関連しており、特にデバイスの各ピンに関連付けられているバウンダリスキャンセルのタイプを記述しています。標準セルタイプはVHDLパッケージ(STD_1149_1_2001など)に記述されており、XJTAG BSDLパーサー(構文解析ツール)によって自動的にサポートされます。

標準定義のバウンダリセルタイプは、BC_0、BC_1…BC_10(および1149.6準拠のデバイスAC_0〜AC_10)です。ただし、IEEE Std. 1149.1準拠のデバイスを提供するメーカは、これらの「標準」タイプに含まれないセルタイプのバリアントを要求される(または希望する)場合があります。この場合、追加のセルタイプ定義情報が必要です。

このページでは、このようなデバイスを識別する方法と、これらの「非標準」セルタイプを正しく解釈するためにXJTAGシステムで追加情報を利用可能にする方法について説明します。

BSDLファイルへの追加

すべてのBSDLファイルは、実装するIEEE Std. 1149.1のバージョンが定義する標準セルタイプパッケージを使用します。 現在最も一般的なパッケージはSTD_1149_1_2001ですが、古いコンポーネントはSTD_1149_1_1994などの以前の標準パッケージを参照している場合があります。次の一般的なBSDLファイルエンティティの短縮例に示すように、パッケージへの参照はuseステートメントとしてコンポーネントエンティティ宣言ブロックに含まれます。

entity COMPONENT_NAME is
-- Generic definitions and default assignments
generic...
-- Port declarations
port (
...declarations...
);
-- Standard pin-type package use clause
use STD_1149_1_1994.all;
-- Miscellaneous constants and attributes
constant...
attribute ...
attribute ...
... etc ...
end COMPONENT_NAME;

追加の定義または非標準のバウンダリスキャンセルタイプがコンポーネントに組み込まれている場合、それらの定義は通常、製造元によって個別の「パッケージ」ファイルで提供され、追加のuseステートメントがBSDLファイルエンティティ宣言に含まれます。たとえば、次の行をBSDLファイルに追加して、BSDLの読み込みにMY_PACKAGE_NAMEパッケージが必要であることを示すことができます。

use MY_PACKAGE_NAME.all;

追加のBSDLパッケージファイルが必要な場合

追加のパッケージファイルを必要とするBSDLファイルをデバイスに割り当てると、XJTAGは次のようなエラーを表示します。

3032at44.bsd: Missing cell types: IO

XJDeveloperで追加のBSDLパッケージファイルを指定する

前の例に示されているエラーを修正するには、参照されているパッケージファイルを見つける必要があります。これは通常、コンポーネントの製造元のWebサイトで入手して、そのコピーをコンポーネントのBSDLファイルと同じディレクトリに保存する必要があります。

JTAGチェーン画面で、問題のデバイスをダブルクリックして、Configure JTAG Deviceダイアログを表示します。

 

Configure JTAG Device panel

 

このダイアログでBSDLファイル名を選択し、[ Add Package ]ボタンをクリックしてパッケージファイルを追加します。必要に応じて、複数のパッケージファイルを追加できます。

XJAnalyserでカスタムBSDLパッケージファイルを処理

上記のソリューションは、XJEaseプロジェクトに追加のBSDLパッケージを指定する機能を提供します。ただし、スタンドアロンのXJAnalyserで作成されたプロジェクトでは、XJDeveloperでインポートされていない限り、これは機能しません。

XJAnalyserのみのプロジェクトでBSDLファイルを使用する場合、補足のBSDLパッケージファイルを含めるメカニズムは提供されません。この場合にBSDLファイルを使用しようとすると、BSDLパーサーが未定義のIOセルタイプを処理しようとして、以下に示すようなエラーが生成されます。

 

Error with BSDL Files

 

この場合にXJAnalyserを使用するには2つの方法があります。

  1. 最初の方法は、このデバイスのBSDLファイルを選択せずにエラーを回避することです([Use BSDL file]チェックボックスをオフにします)。これにより、XJAnalyserはデバイスをBYPASSモードにします。 XJAnalyserは通常どおり動作しますが、このデバイスのピンの監視または制御はできません。
  2. 2番目の方法は、次の例に示すように、テキストエディターを使用してuseステートメントの代わりに、その内容全体をBSDLファイルにコピーすることで、BSDLソースファイル内に補足BSDLパッケージファイルを手動で含めることです。これにより、XJAnalyserがデバイスのすべての機能を使用できるようになり、またそれ以降、XJDeveloperプロジェクトでBSDLファイルを使用するときにパッケージファイルを含める必要がなくなります。ただし、BSDLファイルを更新されたバージョンに置き換える場合は、同じ方法で新しいファイルを変更する必要があります。

BSDLファイルを変更するには、含めるパッケージファイルを定義するuseステートメントを探し、テキストエディター内でカットアンドペーストを使用して、このステートメントをパッケージファイルのコンテンツ全体に置き換えます。標準パッケージファイルSTD_1149_1_XXXXのuseステートメントを置き換えないように注意してください。これは必要です。

例えば、以下の内容は、

...
use STD_1149_1_1994.all;
use MY_PACKAGE_NAME.all;
attribute PIN_MAP of COMPONENT_NAME : entity is PHYSICAL_PIN_MAP;
...

次のものに置き換えます。

...
use STD_1149_1_1994.all;
package MY_PACKAGE_NAME is
constant IO : CELL_INFO;
end MY_PACKAGE_NAME;
package body MY_PACKAGE_NAME is
constant IO : CELL_INFO :=
((BIDIR_IN, EXTEST, PI),
(BIDIR_IN, SAMPLE, PI),
(BIDIR_IN, INTEST, PO),
(BIDIR_OUT, EXTEST, PO),
(BIDIR_OUT, SAMPLE, PO),
(BIDIR_OUT, INTEST, PI));
end MY_PACKAGE_NAME;
attribute PIN_MAP of COMPONENT_NAME : entity is PHYSICAL_PIN_MAP;
...

これを行う方法の例は、custom-bsdl-example.zipファイルに含まれています。このファイルには、Philips SAA7113デバイスのBSDLファイルの元のバージョンと変更されたバージョン、および関連するパッケージファイルが含まれています。

Want to be the first to know of new eBooks and JTAG Resources?

Find out how XJTAG can help you test your PCB faster
From Prototype To Manufacture