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.
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").
" 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)
(BC_1, *, controlr, 1)