Xilinx XC9500 Jtag instructions?

Nov 12, 2006 4 Replies

Does anyone know where to find the XC9500 Jtag programming instructions? I have one for the XCR3000 (cool runner) and looking for the equivalence for XC9500 The XCR3000 jtag spec has detail info down to the TMS/TDI/TDO level. I am sure there is one for XC9500 somewhere. I can't even find the XCR3000 on xilinx's web anymore.



Did you look in the BDSL files in the webpack xc9500xl/data/ directory?

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

That would give me the boundary scan registers. What I am looking for is the spec of Flash programming. For example, for XCR3032, I have to shift in 304 data bits and 9 address bits to access the Flash. Would it be the same for XC9536/9572, perhaps a different number of bits?

for exampl in xc9500xl/data/xc9572xl_pc44.bsd you find

attribute INSTRUCTION_OPCODE of xc9572xl_pc44 : entity is "BYPASS ( 11111111)," & "CLAMP ( 11111010)," & "ISPEX ( 11110000)," & "EXTEST ( 00000000),"& "FBULK ( 11101101),"& "FBLANK ( 11100101),"& "FERASE ( 11101100),"& "FPGM ( 11101010)," & "FPGMI ( 11101011)," & "FVFY ( 11101110)," & "FVFYI ( 11101111)," & "HIGHZ ( 11111100),"& "IDCODE ( 11111110),"& "INTEST ( 00000010),"& "ISPEN ( 11101000)," & "ISPENC ( 11101001)," & "SAMPLE ( 00000001)," & "USERCODE ( 11111101)";

In the last version of naxjp with source available, you can find how these commands are used to programm the device. E.g. in naxjp-079/alg95xl.cpp for erasing the device you find:

bool DeviceXC95XL::Erase(){ csd->SetLength(Num,18); csd->SetSMASK(Num,0x3ffff); if(!stricmp(DeviceCmd,"oerase")){ PrintMessage("erase"); csi->SetTDI(Num,0xec,8,0); csi->OutputSIR(false); csd->SetTDI(Num,0xaa55 OutputSDR(false,400000,IgnoreLevel); } PrintMessage("bulk erase"); csi->SetTDI(Num,0xed,8,0); csi->OutputSIR(false); csd->SetTDI(Num,0x03ffff,18,0); csd->OutputSDR(false,400000,IgnoreLevel); csd->SetTDI(Num,0x00001,18,0); csd->SetTDO(Num,0x00001,18,0); csd->SetMASK(Num,0x00003,18,0); return csd->OutputSDR(true,0,IgnoreLevel);

The comments are however in japanese, Nahitafu has no big knowledge of english and further versions of naxjp where no longer available in source.

Probably Nahitafu signed some NDAs.

I wish the programming instruction would be available somewhere and would be folded in some program like xc3sprog.

Cheers

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

Can you post the rest of this file?

I have some Japanese friends to help.

I doubt it. Xilinx published full spec for XCR3000. Why would they hold out on XC9500? I am just trying to make use of some old inventories. Otherwise, I have to buy new XCR3000s.

I'll get it translated and post it. Thanks.

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required