I've been using a heavily-hacked-together version of xc3sprog with the Xilinx Parallel cable IV for a while now under linux. However, more and more machines lack parallel ports, and I'm looking for an alternative. The Xilinx Platform Cable (2) USB was an option, except that setup is a bit of a pain, and there don't appear to be any Free tools for programming devices with it. I like to leave JTAG adaptors around at customers' sites such that I can try a bit of remote debugging before I end up on site, but this is getting increasingly difficult without the parallel ports. I also wouldn't want to be installing the full ISE suite on customers machines if I could avoid it. I've not had any success using USB-to- parallel-port converters, either. Given these, what do people recommend for programming their Xilinx devices? I'd like the following: 1. Works close-to-out-of-the-box under linux 2. Cheap (<$250) 3. Non-horrible software that works under 32- and 64-bit OSes, ideally with source 4. the ability to get at the USERn registers from the FPGA, either from the command line or an API. 5. ships out-of-the-box with the xilinx 2x7 2mm header for JTAG. Has anyone seen any options that might get me close to this? Thanks, ...Eric
Recommended Xilinx USB JTAG cable?
Started by ●February 6, 2009
Reply by ●February 7, 20092009-02-07
Eric wrote:> I've been using a heavily-hacked-together version of xc3sprog with the > Xilinx Parallel cable IV for a while now under linux. However, more > and more machines lack parallel ports, and I'm looking for an > alternative. The Xilinx Platform Cable (2) USB was an option, except > that setup is a bit of a pain, and there don't appear to be any Free > tools for programming devices with it. > > I like to leave JTAG adaptors around at customers' sites such that I > can try a bit of remote debugging before I end up on site, but this is > getting increasingly difficult without the parallel ports. I also > wouldn't want to be installing the full ISE suite on customers > machines if I could avoid it. I've not had any success using USB-to- > parallel-port converters, either. > > Given these, what do people recommend for programming their Xilinx > devices? I'd like the following: > 1. Works close-to-out-of-the-box under linux > 2. Cheap (<$250) > 3. Non-horrible software that works under 32- and 64-bit OSes, ideally > with source > 4. the ability to get at the USERn registers from the FPGA, either > from the command line or an API. > 5. ships out-of-the-box with the xilinx 2x7 2mm header for JTAG. > > Has anyone seen any options that might get me close to this? > > Thanks, > ...EricEric, Digilent (www.digilentinc.com) sells a nice usb to 6 pin cable for $37.95. Problem is it only works with their windoze software. Would be nice if they supported linux. John Eaton
Reply by ●February 7, 20092009-02-07
On Feb 7, 8:13=A0pm, John Eaton <nos...@spam.com> wrote:> Digilent =A0(www.digilentinc.com) sells a nice usb to 6 pin cable for > $37.95. =A0Problem is it only works with their windoze software. Would be > nice if they supported linux.I've got one of these and it works nicely (very fast) under WinXP, although the driver application has a few limitations (can only configure, not verify / readback). There is an open source app that purports to drive this device here: http://sourceforge.net/projects/xilprg It's a few years out of date and the author seems to have dropped off the face of the planet. I've tried this with my Digilent USB<->JTAG cable and while it recognizes the device it can't seem to detect any devices on the bus. Hanging a 'scope probe from the JTAG signals shows that they're not moving, so I suspect there are still some issues. It might be a good starting point for someone who knows more about this than I do. Eric (not the OP)
Reply by ●February 8, 20092009-02-08
Hi Eric, You might want to have look at http://urjtag.org/ It's a command line tool to control the JTAG chain. Apart from generic shifting, it contains an SVF player for FPGA/CPLD configuration and features various algorithms to program on-board flash and RAM.> Given these, what do people recommend for programming their Xilinx > devices? I'd like the following: 1. Works close-to-out-of-the-box > under linuxYes, requires low-level libraries like libusb, libftdi, libftd2xx.> 2. Cheap (<$250)Software is open source. Supported USB based JTAG pods are from EUR30 upwards.> 3. Non-horrible software that works under 32- and 64-bit OSes, > ideally with sourceComes as source. Horrible or not is up to the user's impression :-)> 4. the ability to get at the USERn registers from the FPGA, either > from the command line or an API.Any JTAG register is accessible by generic instructions on the command line. You can use special registers that aren't part of the vendor's BSDL description.> 5. ships out-of-the-box with the xilinx 2x7 2mm header for JTAG.Supported USB pods: - USB Blaster - a variety of FT2232 based pods, preferably Amontec's JTAGkey and ARM-USB-OCD by Olimex - very experimental Platform USB Cable / DLC9 There's no link to the A & X vendor software howsoever. Things like ChipScope aren't covered at all. Just plain access to the JTAG interface. Arnim
Reply by ●February 9, 20092009-02-09
emeb wrote:> On Feb 7, 8:13 pm, John Eaton <nos...@spam.com> wrote: > >> Digilent (www.digilentinc.com) sells a nice usb to 6 pin cable for >> $37.95. Problem is it only works with their windoze software. Would be >> nice if they supported linux. > > I've got one of these and it works nicely (very fast) under WinXP, > although the driver application has a few limitations (can only > configure, not verify / readback). There is an open source app that > purports to drive this device here: > > http://sourceforge.net/projects/xilprg > > It's a few years out of date and the author seems to have dropped off > the face of the planet. I've tried this with my Digilent USB<->JTAG > cable and while it recognizes the device it can't seem to detect any > devices on the bus. Hanging a 'scope probe from the JTAG signals shows > that they're not moving, so I suspect there are still some issues. It > might be a good starting point for someone who knows more about this > than I do. > > Eric (not the OP)I also tried xilprg with the same results. Glad to see that I'm not the only one who can't get anything to work. John Eaton
Reply by ●February 9, 20092009-02-09
On Feb 9, 1:35=A0pm, John Eaton <no_s...@spam.com> wrote:> I also tried xilprg with the same results. Glad to see that I'm not the > only one who can't get anything to work.We should start a "Disappointed xilprog users" support group. :) Ideally the thing to do would be to figure out the USB commands sent to the cable by means of a USB snooper while running the Digilent tools under WinXP. Reverse engineering the protocol should be fairly easy from there. This would also allow one to add support for this cable to the urJTAG suite which seems to be the most active open source JTAG tool out there. Eric
Reply by ●February 9, 20092009-02-09
emeb <ebrombaugh@gmail.com> wrote:> On Feb 9, 1:35�pm, John Eaton <no_s...@spam.com> wrote:> > I also tried xilprg with the same results. Glad to see that I'm not the > > only one who can't get anything to work.> We should start a "Disappointed xilprog users" support group. :)> Ideally the thing to do would be to figure out the USB commands sent > to the cable by means of a USB snooper while running the Digilent > tools under WinXP. Reverse engineering the protocol should be fairly > easy from there. This would also allow one to add support for this > cable to the urJTAG suite which seems to be the most active open > source JTAG tool out there.I have worked further on xc3sprog. It runs with DLC5, Byteblaster, FT2232 and FX2, wired like in XGUFF and the USRP firmware slightly modified in the I2C section. Parallel port access is via parport on UNIX and VDMLPT1 on win32 (untested). USB transfers tries to avoid fragmentation and in the cases tested faster than the parallelport version. FT2232 can use libftd2xx and should run on win32 too. FX2 needs libusb. If anybody can provide me with a sample of FT2232H, I will add it too. I expect the FT2232H to be amazingly fast... Some code for XC95XL is added, tested with the XC95144XL, but no CPLD size detection yet. There is a command option to verify Platform Flash/CPLD. The Xilinx 1532 BSDL files where of some help, and pusblished naxjp code. There is a local CVS tree, from the last tar version from sourceforge, incorporation the pending patches up to the present state. Anybody knows how to takeover the sourceforge xc3sprog project? I have put my tarred svn trunk as patch on sourceforge, but downloader are requested to give feedback, best in the form of patches. -- Uwe Bonnes bon@elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
Reply by ●February 9, 20092009-02-09
On Feb 9, 3:12=A0pm, Uwe Bonnes <b...@elektron.ikp.physik.tu- darmstadt.de> wrote:> I have worked further on xc3sprog. It runs with DLC5, Byteblaster, FT2232 > and FX2, wired like in XGUFF and the USRP firmware slightly modified in t=he> I2C section. Parallel port access is via parport on UNIX and VDMLPT1 on > win32 (untested). USB transfers tries to avoid fragmentation and in the > cases tested faster than the parallelport version. FT2232 can use libftd2=xx> and should run on win32 too. FX2 needs libusb. If anybody can provide me > with a sample of FT2232H, I will add it too. I expect the FT2232H to be > amazingly fast...Sorry I didn't look more closely at your contributions - I'll do that. FWIW, the Digilent USB<->JTAG cable apparently uses a CY7C68013 which is compatible with the FX2. I wonder if it would work with your code? Eric
Reply by ●February 9, 20092009-02-09
emeb <ebrombaugh@gmail.com> wrote: ...> Sorry I didn't look more closely at your contributions - I'll do that.The upload was quite recent..> FWIW, the Digilent USB<->JTAG cable apparently uses a CY7C68013 which > is compatible with the FX2. I wonder if it would work with your code?The cable driver only needs to implement void txrx_block(const unsigned char *tdi, unsigned char *tdo, \ int length, bool last); void tx_tms(unsigned char *pat, int length); to export to the higher levels. For the FX2 USRP/XGUFF cable I reused the I2C command request with using addresses above 0x7f for the JTAG requests. I2C only used 7 bit addresse, so these addresses are unused. As FX2 command transfers only have a 64 byte buffer, this is not the fastest transfer rates possible. I have uploaded to sourceforge the code snipplets implementing the needed transfers. If you have not worked before with the FX2, the learning curve is quite steep. -- Uwe Bonnes bon@elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
Reply by ●February 9, 20092009-02-09
Uwe Bonnes wrote:> > Anybody knows how to takeover the sourceforge xc3sprog project? I have put > my tarred svn trunk as patch on sourceforge, but downloader are requested > to give feedback, best in the form of patches. >They have a process set up to do that. Start off by emailing the current owner. If there is no response then check the sourceforge docs for how to get them to transfer ownership to you. John Eaton





