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# 15419

5.1i BSDLAnno - Incorrect handling of output "safe" values causes contention during EXTEST (high current draw)


Urgency: Hot

General Description:

BSDLAnno always sets the "safe" value in the "controlr" cell of an annotated BSDL file to a 0. This will be a problem for devices that should have the "safe" value set to a 1, as boundary scan tools will not be able to place the boundary scan output cell into a high-impedance state.

For example:

Original BSDL file:

" 581 (BC_1, *, controlr, 1)," &

" 582 (BC_1, IO_P63, output3, X, 581, 1, PULL0)," & -- PAD288

" 583 (BC_1, IO_P63, input, X)," & -- PAD288

In the original BSDL file, the "safe" value is the bolded "1" after "controlr" in Cell 581 above. This value matches the high-z value in Cell 582 (bolded "1").

BSDLAnno file:

" 581 (BC_1, *, controlr, 0)," &

" 582 (BC_1, IO_P63, output3, X, 581, 1, Z)," & -- PAD288

" 583 (BC_1, *, internal, X)," & -- PAD288

In the BSDLAnno BSDL file, the "safe" value is always set to 0. This is a problem for this device -- the original BSDL file specified a 1 for this cell, but it has now been changed to a 0.


This problem is fixed in the latest 5.1i Service Pack, available at:

The first service pack containing the fix is 5.1i Service Pack 2.

Alternatively, you can check the "safe" value in the annotated BSDL file to ensure that it matches the value in the original BSDL file. You need only check this for a single cell in a given BSDL file, as all "controlr safe" values will be the same for a given device. If the "safe" value in the original BSDL file is a 0, then this issue will not cause a problem.

If the safe value in the "controlr" cell has incorrectly been changed to a 0, you may use a text editor to correct the problem by performing a global "find and replace" on the following strings:


(BC_1, *, controlr, 0)

Replace with:

(BC_1, *, controlr, 1)

AR# 15419
Date 12/15/2012
Status Active
Type General Article
Page Bookmarked