EmbeddedRelated.com
Forums
Memfault State of IoT Report

USB Cable for Programming Xilinx FPGA (Spartan 3)

Started by Anand P. Paralkar October 17, 2014
Hello everyone,

I would like to know if we can use a general purpose (available 
off-the-shelf at popular stores) USB to JTAG cable to program a Xilinx 
Spartan 3 FPGA or does it *have to be* a cable (and box) specifically 
meant for programming a Spartan 3 FPGA (as shown on the Xilinx website)?

I am hoping to hear from people who have actually used a general purpose 
USB to JTAG cable (as seen on Digikey/Mouser/.. etc.) and tell me that 
it works just fine.

Regards,
Anand
Den fredag den 17. oktober 2014 19.32.52 UTC+2 skrev Anand P. Paralkar:
> Hello everyone, > > > > I would like to know if we can use a general purpose (available > > off-the-shelf at popular stores) USB to JTAG cable to program a Xilinx > > Spartan 3 FPGA or does it *have to be* a cable (and box) specifically > > meant for programming a Spartan 3 FPGA (as shown on the Xilinx website)? > > > > I am hoping to hear from people who have actually used a general purpose > > USB to JTAG cable (as seen on Digikey/Mouser/.. etc.) and tell me that > > it works just fine. >
if it's got the right drivers it should work, though it might not work with the xilinx programming tools, and for stuff like encryption keys in spartan6 you need the real Xilinx one. I'd just get one of these, I believe the internals are the same as what is on many Xilinx boards http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,395,1298&Prod=JTAG-HS3 -Lasse
langwadt@fonz.dk wrote:
> if it's got the right drivers it should work, though it might not work > with the xilinx programming tools, and for stuff like encryption keys in > spartan6 you need the real Xilinx one.
I don't know the Xilinx cables as such, but there's no such thing as standard JTAG interfaces. So there's no generic JTAG framework for Windows/Linux/whatever that vendors write drivers for. In Altera land, either it's a hardware clone of Altera's USB Blaster, or it doesn't work. That implies you either need a Xilinx cable or a Xilinx-compatible one. Some of these cables can be used by other software like OpenOCD, which has its own set of backends for them, but the vendor tools don't hook into this. So while there is a set of fairly comprehensive hardware drivers (JTAG is just bitbanging after all, so the driver is fairly trivial) they aren't used by the software that matters. Theo
On 10/17/2014 3:10 PM, Theo Markettos wrote:
> langwadt@fonz.dk wrote: >> if it's got the right drivers it should work, though it might not work >> with the xilinx programming tools, and for stuff like encryption keys in >> spartan6 you need the real Xilinx one. > > I don't know the Xilinx cables as such, but there's no such thing as > standard JTAG interfaces. So there's no generic JTAG framework for > Windows/Linux/whatever that vendors write drivers for. In Altera land, > either it's a hardware clone of Altera's USB Blaster, or it doesn't work. > That implies you either need a Xilinx cable or a Xilinx-compatible one. > > Some of these cables can be used by other software like OpenOCD, which has > its own set of backends for them, but the vendor tools don't hook into this. > So while there is a set of fairly comprehensive hardware drivers (JTAG is > just bitbanging after all, so the driver is fairly trivial) they aren't used > by the software that matters.
That said, there are a number of clone programming cables available on eBay. Many support multiple vendors. -- Rick
On 17-10-2014 23:02, Anand P. Paralkar wrote:
> Hello everyone, > > I would like to know if we can use a general purpose (available > off-the-shelf at popular stores) USB to JTAG cable to program a Xilinx > Spartan 3 FPGA or does it *have to be* a cable (and box) specifically > meant for programming a Spartan 3 FPGA (as shown on the Xilinx website)? > > I am hoping to hear from people who have actually used a general purpose > USB to JTAG cable (as seen on Digikey/Mouser/.. etc.) and tell me that > it works just fine. > > Regards, > Anand
Thanks everyone for your replies. I think I recollect now - even though one may get basic programming done through a general purpose USB to JTAG cable in principal, the Xilinx tool chain may not work with such a general purpose USB to JTAG cable. The tool chain would require some "pattern" memory to be present in the programmer box. That memory would be used for debug capture of internal nodes etc. In conclusion - one needs a Xilinx FPGA programming specific USB to JTAG cable (and its programmer box). Regards, Anand
"Anand P. Paralkar" <anand.paralkar@gnospammale.com> writes:

> In conclusion - one needs a Xilinx FPGA programming specific USB to > JTAG cable (and its programmer box).
I designed my own programmer several years ago. It used the JTAG port and I have used it to program both Altera and Xilinx FPGAs, as well as some microcontrollers, including the programmer itself. So it's possible that others have gone done this route this as well. I used the vendor software to generate SVF. My SW then plays back the content of the SVF file (in a post-processed/compressed form) over the JTAG port. I haven't used it recently though as most of my new dev kits contains an embedded programmer. What it could not do (like you're indicating) was to use Signaltap/Chipscope as there is no hook into the vendor SW or public documentation of the protocol used. At least not that I could find. However, there are 3rd pary embedded analyzers like Identify from Synopsys which might provide som kind of API documentation. Digilent makes some vendor clones, even embedded ones (like the SMT2) which you will find on many development kits. //Petter -- .sig removed by request.
Petter Gustad <newsmailcomp6@gustad.com> wrote:
> I used the vendor software to generate SVF. My SW then plays back the > content of the SVF file (in a post-processed/compressed form) over the > JTAG port. I haven't used it recently though as most of my new dev > kits contains an embedded programmer. > > What it could not do (like you're indicating) was to use > Signaltap/Chipscope as there is no hook into the vendor SW or public > documentation of the protocol used. At least not that I could find. > However, there are 3rd pary embedded analyzers like Identify from > Synopsys which might provide som kind of API documentation.
I wonder if there's some way to write a 'virtual programmer'. Tell the tools we have a basic parallel port programmer (for instance), and then trap when they bitbang it and pass the results over to a tool like OpenOCD that has backends for other real hardware. For example, when the programmer tries to open /dev/lp0 or LPT1: have some shim underneath that grabs the traffic - either a fake device driver, an LD_PRELOAD hack, or running the tools in a VM. Just a thought... Theo

Memfault State of IoT Report