デバッグソリューションズホームへ

1.はじめに

2.使用される単語

3.文法定義表記方法

4.文法定義

4.1 BSDLの構造

4.2 Generic

parameter文

4.3 Logical port

description文

4.4 Standard use文

4.5 Use文

4.6 Compornent

conformance文

4.7 Device package

pinmappings文

4.8 Grouped port

identification文

4.9 Scan port

identification文

4.10 Compliance enabel

description文

4.11 Instruction register

description文

4.12 Optional register

description文

4.13 Register access

description文

4.14 Boundary register

description文

4.15 RUNBIST

description文

4.16 INTEST description

4.17 User extensions

to BSDL

4.18 Design Warning文

 

5.Standard VHDL

Package

5.1 1990年版

5.2 1994年版

5.3 2001年版

 

6.各バージョンにおける

  DEBSOLホームへ

 

4.11 Instruction register description 

Instruction register description はデバイスに依存するインストラクションレジスタの特性を記述します。デバイスに実装されるインストラクションレジスタの特性を示すものとして以下のものがあります。

Length インストラクションレジスタは最低2ビットの長さを持ちます。最大長に制限はありません。
Instructions インストラクションをサポートするためには対応するレジスタが必要です。デバイスの設計者は IEEE Std.1149.1 に規定されているオプションインストラクションの一部或いは全てを実装することが可能です。又プライベートインストラクションも実装できます。プライベートインストラクションは、試験の実行時、予期しない動作を防ぐためにアプリケーションに対してプライベートインストラクションであることを明示しなければなりません。

Instruction codes

(opcodes)

EXTEST と BYPASS インストラクションのビットパターンは IEEE Std.1149.1によってあらかじめ定義されています(EXTEST:All“0”,BYPASS:All“1”)。他のインストラクションのビットパターンはデバイスの設計者によって定義されなければなりません。
Instruction capture Capture−IR の状態遷移を通過すると、インストラクションレジスタに入力したデータがロードされます。

BSDLのインストラクションレジスタの特性とはその長さ、オペコード、Capture−IR の状態遷移でロードされるパターン、そして与えられたインストラクションがパブリックかプライベートかの情報です。

<instruction register> ::=

<instruction length stmt>

<instruction opcode stmt>

<instruction capture stmt>

[ <instruction private stmt> ]

<instruction length stmt> ::=

attribute INSTRUCTION_LENGTH of

<component name> : entity is <integer>;

<instruction opcode stmt> ::=

attribute INSTRUCTION_OPCODE of

<component name> : entity is 

<opcode table string>;

<instruction capture stmt> ::=

attribute INSTRUCTION_CAPTURE of

<component name> : entity is

<pattern list string>;

<instruction private stmt> ::=

attribute INSTRUCTION_PRIVATE of

<component name> : entity is

<instruction list string>;

<opcode table string> ::=

W <opcode description> 

{ , <opcode description> } W

<pattern list string> ::= W <pattern list> W
<pattern list> ::= <pattern> { , <pattern> }
<instruction list string> ::= W <instruction list> W
<instruction list> ::=

<instruction name> 

{ , <instruction name> }

<opcode description> ::= <instruction name> ( <pattern list> )

attribute の目的を以下に示します。

INSTRUCTION_LENGTH <instruction length stmt>はインストラクションレジスタの長さを定義します。オペコードのパターンのビット長は<instruction length stmt>で定義されたレジスタ長と一致しなければなりません。
INSTRUCTION_OPCODE <instruction opcode stmt>はインストラクション名とそれに対応するビットパターンを定義します。ビットパターンの右端のビットが、シフトレジスタでTDoに近い(最初に出力される)ビットになります。IEEE Std.1149.1ではEXTEST,BYPASSインストラクションのコードの表記は省略可能です。この場合EXTESTのパターンはAll“0”,BYPASSのパターンはAll“1”となります。又他のビットパターンを追加で定義することも可能です。使用されないビットパターンはBYPASSインストラクションにデコードされます。

INSTRUCTION_CAPTURE

<instruction capture stmt>はTAPコントローラがCapture−IRの状態遷移を通過するときに、インストラクションレジスタにロードされるビットパターンを定義します。IEEE Std.1149.1ではLSBの2ビットは“01”と決められています。残りのビットは設計者が定義します。
INSTRUCTION_PRIVATE <instruction private stmt>はプライベートインストラクションを定義するもので、オプションです。プライベートインストラクションはデバイスの設計者によって使用されるもので、その動作は正常動作が保証されないため、通常動作ではこのインストラクションの使用は避けるべきです。

 

例:

attribute INSTRUCTION_LENGTH of xx74bct8244a : entity is 8;

attribute INSTRUCTION_OPCODE of xx74bct8244a : entity is

WEXTEST  (00000000,10000000),W&
WBYPASS (11111111,10000100),W&
WSAMPLE (00000010,10000010),W&
WINTEST (00000011,10000011),W&
WHIGHZ (00000110,10000110),W& −−Bypass with outputs high−z
WCLAMP (00000111,10000111),W& −−Bypass with bs value
WRUNT (00001001,10001001),W& −−Boundary run test
WREADBN (00001010,10001010),W& −−Boundary read normal mode
WREADBT (00001011,10001011),W& −−Boundary read test mode
WCELLTST (00001100,10001100),W& −−Boundary selftest mode
WTOPHIP (00001101,10001101),W& −−Boundary toggle out test mode
WSCANCN (00001110,10001110),W& −−BCR scan normal mode
WSCANCT (00001111,10001111) W; −−BCR scan test mode

attribute INSTRUCTION_CAPTURE of xx74bct8244a : entity is

 W10000001W;

attribute INSTRUCTION_DISABLE of xx74bct8244a : entity is WHIGHZW;
attribute INSTRUCTION_GUARD of xx74bct8244a : entity is WCLAMPW;

この例は1990年版BSDL表記です。1994年版BSDLでは INSTRUCTION_DISABLE 及び INSTRUCTION_GUARD は削除されています。