Spartan 3E - Readback via JTAG

Aug 31, 2007 3 Replies

Hi,



i'd like to readback all the contents of an XC3S500E via the JTAG interface. Because this option is not implemented in the iMPACT-tool (well, it is implemented via the verify-option, but the readback data cannot be stored to a file), i tried to extend xc3sprog [1] to readback capability (that is extending the xc3sprog.cc)



My question is, what commands are to be send to the Spartan 3E, because I wasn't able to find it on the Xilinx webpage, yet, although there are user guides for the Spartan 2(E)[2] and the Virtex[3] series. The opcodes used via the SerialMAP-interface are documented in [4], the JTAG Configuration Mode is explained in [5].



Any help would be appreciated.



Greetings Benni



[1] XC3SPROG
formatting link
[2] XAPP176
formatting link
[3] XAPP139
formatting link
[4] XAPP452
formatting link
[5] UG332
formatting link

Another source of information are the BSDL files. Find them in the ISE directory under spartan3e/data for e.g. the XC3SE.You will find the CFG_IN command the progalgxc3s.cpp uses for programming. The BSDL file also knows about a CFG_OUT command that could probably be used for readback. Compare with the BSDL files for the S2(E) and try out to do similar.

Hope this helps

Uwe Bonnes bon@elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------

thanks for your help.

Actually I think I found the commands in the *.rbb-file, which, according to XAPP452, starts with the binary command sets.

So, for reference, here the commands which hopefully work :-)

0xffff ffff // Sync 0xaa99 5566 // Sync 0x3001 c001 // IDCODE Register 0x01c2 2093 // XC3S500E 0x3000 2001 // FAR Write Packet Header 0x0000 0000 // FAR Write Packet Data (0h) 0x3000 8001 // CMD Write Packet Header 0x0000 000b // CMD Write Packet Data (SHUTDOWN) 0x3000 8001 // CMD Write Packet Header 0x0000 0007 // CMD Write Packet Date (RCRC) 0x2000 0000 // NOP 0x2000 0000 // NOP 0x2000 0000 // NOP 0x2000 0000 // NOP 0x3000 8001 // CMD Write Packet Header 0x0000 0004 // CMD Write Packet Data (RCFG) 0x2800 6000 // FDRO Read Packet Header (Type 1) 0x4801 149a // FDRO Read Packet Header (Type 2), Word-Counter 1149Ah ... ... ... 0x3000 8001 // CMD Write Packet Header 0x0000 0005 // CMD Write Packet Data (START) 0x3000 8001 // CMD Write Packet Header 0x0000 0007 // CMD Write Packet Data (RCRC) 0x3000 8001 // CMD Write Packet Header 0x0000 000d // CMD Write Packet Data (DESYNCH) 0x2000 0000 // NOP 0x2000 0000 // NOP 0x2000 0000 // NOP 0x2000 0000 // NOP

Greetings Benni

Please keep us informed and eventually send patches to sourceforge.

Thanks

Uwe Bonnes bon@elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required