UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 8350

JTAG、BSDL - BSDL とは何か、またそのファイルの読み込み方法

説明

キーワード : BSDL, read, syntax, basic, 読み込み, 構文, 基本

BSDL とは何ですか。 どのように使用され読み込まれますか。

ソリューション

1

IEEE 1149.1 規格に沿い、ツールでうまくサポートされているデータ フォーマットがいくつか登場しました。 バウンダリ スキャン記述言語 (BSDL) がそのうちのひとつです。

最新の BSDL ファイルは次のサイトからダウンロードできます。
http://japan.xilinx.com/support/sw_bsdl.htm

次はテキサス インツルメンツ社のウェブ サイトからの抜粋です。
http://www.ti.com/sc/docs/jtag/format.htm#bsdl

歴史

1990 年の IEEE 1149.1 規格承認を受け、この規格のインプリメンテーションが盛んになりました。 この規格の知名度や使用度が高まるにつれ、IEEE 1149.1 に準拠したデバイスが認識されるようになりました。 IEEE 1149.1 ワーキング グループは、このニーズに応えるため、デバイス記述言語を開発するために結成された団体です。

このグループは、業界標準言語であるバウンダリ スキャン記述言語 (BSDL) を開発および承認してきました。 BSDL とは VHDL (VHSIC ハードウェア記述言語) のサブセットで、IEEE 1149.1 のデバイスへのインプリメント方法やその動作を記述し、 IEEE 1149.1 インプリメンテーションの重要な機能を捉えています。 BSDL は、1994 年に IEEE Std. 1149.1b として承認されました。

IEEE 1149.1 は、テストしやすいストラクチャ デザインで、ツールでの使用や自動化に適しています。 この規格をサポートするために開発されたツールは、バウンダリスキャン アーキテクチャがどのようにインプリメントされたかがわかっている場合、TAP (Test Access Port) を制御します。 これらのツールは、デバイスの I/O ピンも制御します。 BSDL は、IEEE 1149.1 がデバイスにどのようにインプリメントされたかを記述するための、コンピュータにも人間にも解読可能なデータ フォーマットを提供します。

BSDL ファイルの使用方法

IEEE 1149.1 準拠のツールの多くで、BSDL がデータ入力フォーマットとしてサポートされています。 これらのツールでは、IEEE 1149.1 をデザインにインプリメントするための、ボード インターコネクトの自動テスト パターン生成 (ATPG) および自動テスト装置 (ATE) 機能が提供されています。

これらのツールを使用する場合、通常、半導体ベンダから BSDL を入手することができます。 これで時間とコストを大幅に節約することができます。

Teradyne は代表的なマイクロプロセッサ用に回路内のテスト パターンを作成するには、約 7 週間かかると見積もっています。
- デバイスのリサーチに 1 週間
- 回路内のテスト パターンの開発に 4 週間
- ATE でのパターン検証に 2 週間

この開発コストは約 $14,000 になると予想されます。

マイクロプロセッサで IEEE 1149.1 がサポートされていて、BSDL はベンダから提供されている場合、回路内のテスト パターンの開発にはツールを使用した場合、時間で 2 時間未満 (コストで $100 未満) になります。

BSDL ファイルの読み込み方法

デバイスの BSDL 記述には次のエレメントが含まれています。

- エンティティ記述
- ジェネリック パラメータ
- 論理ポート記述
- use 文
- ピン マッピング
- スキャン ポート判別
- 命令レジスタ記述
- レジスタ アクセス記述
- バウンダリ レジスタ記述

エンティティ記述: エンティティ文はデバイス名 (例 SN74ABT8245) などのエンティティを記述します。 エンティティ記述は entity 文で始まり、end 文で終わります。

entity XYZ is

{statements to describe the entity go here}

end XYZ

ジェネリック パラメータ: ジェネリック パラメータは、エンティティ以外から来るパラメータ、またはパッケージ タイプ (例 "DW") などのデフォルト パラメータである場合があります。

generic (PHYSICAL_PIN_MAP : string := "DW");

論理ポート記述: 論理ポート記述は、I/O ピン (システムおよび TAP ピン) に論理名を付け、各ピンの機能 (入力、出力、双方向) を記述します。

port (OE:in bit;

Y:out bit_vector(1 to 3);

A:in bit_vector(1 to 3);

GND, VCC, NC:linkage bit;

TDO:out bit;

TMS, TDI, TCK:in bit);

Use 文: パッケージおよびパッケージのボディにある外部定義が記述されています。

use STD_1149_1_1994.all;

ピン マッピング: 論理信号をデバイス パッケージの物理ピンにマップします。

attribute PIN_MAP of XYZ : entity is

PHYSICAL_PIN_MAP;

constant DW:PIN_MAP_STRING:=

"OE:1, Y:(2,3,4), A:(5,6,7), GND:8, VCC:9, "&

"TDO:10, TDI:11, TMS:12, TCK:13, NC:14";

スキャン ポート判別: デバイスの TAP を定義します。

attribute TAP_SCAN_IN of TDI : signal is TRUE;

attribute TAP_SCAN_OUT of TDO : signal is TRUE;

attribute TAP_SCAN_MODE of TMS : signal is TRUE;

attribute TAP_SCAN_CLOCK of TCK : signal is (50.0e6, BOTH);

命令レジスタ記述: 命令レジスタのデバイスに依存した特性が識別されます。

attribute INSTRUCTION_LENGTH of XYZ : entity is 2;

attribute INSTRUCTION_OPCODE of XYZ : entity is

"BYPASS (11), "&

"EXTEST (00), "&

"SAMPLE (10) ";

attribute INSTRUCTION_CAPTURE of XYZ : entity is "01";

レジスタ アクセス記述: 各命令の TDI と TDO の間に配置されたレジスタを定義します。

attribute REGISTER_ACCESS of XYZ : entity is "BOUNDARY (EXTEST, SAMPLE), "&

"BYPASS (BYPASS) ";

バウンダリスキャン レジスタ記述: バウンダリスキャン セル (セル タイプと関連コントロールを含む) のリストが記述されます。

attribute BOUNDARY_LENGTH of XYZ : entity is 7;

attribute BOUNDARY_REGISTER of XYZ : entity is "0 (BC_1, Y(1), output3, X, 6, 0, Z), "&

"1 (BC_1, Y(2), output3, X, 6, 0, Z), "&

"2 (BC_1, Y(3), output3, X, 6, 0, Z), "&

"3 (BC_1, A(1), input, X), "&

"4 (BC_1, A(2), input, X), "&

"5 (BC_1, A(3), input, X), "&

"6 (BC_1, OE, input, X), "&

"6 (BC_1, *, control, 0)";

BSDL および SVF ファイルの詳細は、次のサイトをご覧ください。
http://www.ti.com/sc/docs/jtag/format.htm#bsdl

2

BOUNDARY_REGISTER はもう少し複雑です。

TDO から TDI のバウンダリスキャン チェーンの各レジスタはこのセクションに記述されています。 通常、入力にはレジスタが 1 つ、出力には 2 つ、双方向 I/O には 3 つあります (入力、コントロール、出力3)。

括弧内のフィールドは次のとおりです。

フィールド 1: 規格で定義されているセル タイプ (すべての ICBD セルは BC_2 または BC_4)
フィールド 2: ポート名。コントロール レジスタはポート名を指定しません。
フィールド 3: セルの機能。入力、出力3、またはコントロール (規格で定義どおり)
フィールド 4: 安全値。ソフトウェアで別の値がランダムに選択される場合、レジスタにロードされる値を指定します。
(フィールド 5 - 7 は出力レジスタにのみ必要です。)
フィールド 5: コントロール セル番号。このポートの出力イネーブルを駆動するコントロール レジスタを指定します。
フィールド 6: ディスエーブル コントロール値。ドライバをディスエーブルにするためにコントロール レジスタにロードされる値です。
フィールド 7: ディスエーブル値。ドライバがディスエーブルされたときに何が起きるかを示すための値。
AR# 8350
作成日 08/21/2007
最終更新日 12/15/2012
ステータス アクティブ
タイプ 一般