Return to Support Page
 homesearchagentssupportask xilinxmap

Answers Database


XC9500: IDCODE instruction fails when used in an embedded or ATE environment using svf files


Record #3656

Product Family:  Hardware

Product Line:  9500

Problem Title:
XC9500: IDCODE instruction fails when used in an embedded or ATE
environment using svf files



Problem Description:
Keywords: 9500, idcode, tdo, svf, xsvf, eztag, jtag, ate, isp

Urgency: standard

General Description:

Device fails while executing the IDCODE instruction on an ATE or in
an embedded system, when the SVF file is used.


Solution 1:

The failure is occurring due to a revision change in the silicon
for the XC95108 and XC95216 parts. The silicon was revised to
implement the bulk erase algorithm which speeds up the ERASE
operation. The devices with older silicon have a revision 0000
while the new devices have revision 0001.

The EZTag or JTAG Programmer(M1.3/M1.4) softwares have no knowledge
of revision of parts being used when the SVF file is created.
The EZTag software creates SVF files for the older revision of
the silicon while the JTAG Programmer creates SVF files for the
newer revision.

The `GetDeviceID' function in the software can be used to find
out the revision of Silicon being used.

There is a simple workaround for this problem.

1. Remove the offending lines in the SVF file. The SVF files
created by the M1 software have embedded comments and it is easy
to find the IDCODE command. The SVF files created by EZTag software
have no comments and you will have to trace through the entire
SVF file to look at all the IDCODE instructions being executed.

However, if you did not execute any IDCODE instructions independently,
then there is only one record that exists in the SVF file. The
first SDR record in the SVF file is always shifting out the IDCODE
result. The SIR record above that is the IDCODE instruction. Both
these lines can be deleted to solve the problem.

2. If you are able to capture the TDO value when the failure
occurs, you can change the TDO expected bits in the SVF file in
the IDCODE SDR record to match the actual TDO value.

For example,

// Loading device '95003(Device1)' with 'idcode' instruction.
SIR 16 TDI (feff) SMASK (ffff) ;
SDR 33 TDI (01fffffffe) SMASK (01ffffffff) TDO (0012a0c126) MASK (01ffffffff) ;

The expected TDO value is 012a241260, but if you are always getting
the TDO actual to be 032a241260, then you may edit the value of
TDO expected in the SVF file to the one that is actually presented.

// Loading device '95003(Device1)' with 'idcode' instruction.
SIR 16 TDI (feff) SMASK (ffff) ;
SDR 33 TDI (01fffffffe) SMASK (01ffffffff) TDO (0032a0c126) MASK (01ffffffff) ;



End of Record #3656

For the latest news, design tips, and patch information on the Xilinx design environment, check out the Xilinx Expert Journals!

© 1998 Xilinx, Inc. All rights reserved
Trademarks and Patents