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.
Xilinx XC9500 Jtag instructions?
Nov 12, 2006
4 Replies
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