Jump to content

FT4232 USB JTAG Queries vs Digilent JTAG USB Module


Recommended Posts

Hi Team,


I've few questions on FTDI FT4232 USB JTAG IC and Digilent USB JTAG Module to use with Xilinx or Any uP/FPGA for JTAG programming.

We want to use FT4232 IC with Xilinx FPGA for FPGA Programming through Vivado. I've seen several queries in forum that with FT4232 it was not able to detect in Vivado HW Manager. (Link: https://support.xilinx.com/s/question/0D52E00006hpkG2SAI/vivado-programming-not-recognizing-ftdi-ft4232-jtag-for-kintex-ultrascale-design?language=en_US )

Xilinx has listed in the forum that there needs to be a custom proprietrary solution which is to be copied to EEPROM, to make it work with Xilinx FPGA JTAG(Link: https://support.xilinx.com/s/article/68889?language=en_US )



Without Custom propreitry EEPROM image, It'll not be able detect in Vivado HW manager? OR Especially from FPGA Vendor that has to be stored in EEPROM? to be able to detect as USB JTAG device in Vivado?

How it has been done USB JTAG Module from Digilent? https://digilent.com/shop/jtag-smt2-surface-mount-programming-module/






Link to comment
Share on other sites

Without purchasing a license, I doubt that anyone is going to tell you what their "proprietary" FTDI JTAG scheme involves but parts of it are readily available, perhaps all of it if you look hard enough.

FTDI provides an EEPROM utility that allow you to see the contents of any FTDI USB bridge EEPROM. They also provide documentation for the D2XX API that lets software find and enumerate an FTDI USB device. Any software using the API can open a device based on one of many fields in the EEPROM, such as serial number or Manufacturer. Whether or not replicating one of these fields constitutes a legal claim is for someone with expertise in the law to ascertain. Digilent, since moving away from the Cypress USB bridge design doesn't publish the schematic page showing how it does configuration. Other board vendors, like Xilinx do. Still, if an FPGA vendor wants to restrict its tools from connecting with custom boards then there's not much that anyone can do about it. As for device configuration, a board designer has lots of ways to configure devices independent of tool vendor support. As for using vendor tools like Quartus SignalTap or Vivado ILA, VIO, then you are stuck with whatever the tool vendor decides their policy is going to be.

To complicate the matter, a board user experience will be different depending on the host OS that is being used. Linux provides for using a device rule to help software connect to a particular device properly. For Intel FPGA devices having a rule file is a requirement as Quartus isn't too picky about what it thinks might be a suitable USB device target. Quartus on a Windows OS can be pretty painful if there are a lot of FTDI USB bridge devices connected to a PC. In fact, using Quartus with an FPGA board having separate FTDI USB bridge devices for configuration and UART functionality on Windows can be a frustrating experience.

This is a common recurring question from people wanting to make a custom FPGA board and after having hardware find out that connecting a board to vendor tools isn't as straight-forward as was assumed.

Edited by zygot
Link to comment
Share on other sites

Posted (edited)

Hii @zygot

Thanks for your reply.

One question I've is, Xilinx mentions that it's EVAL board with proprietary solution which is in EEPROM, Can't the customer read back the EEPROM content of EVAL Board and use it in their Custom board by pasting the same content to make it work?


I've not got the answer for this yet: 

How it has been done USB JTAG Module from Digilent? https://digilent.com/shop/jtag-smt2-surface-mount-programming-module/


Edited by KLN
Link to comment
Share on other sites

It's certainly true that not having something somewhere in the bridge configuration EEPROM that any software is looking for is enough to cause proper enumeration issues. The EEPROM contents, by itself, hardly seems to be something that one could call 'proprietary'. If there's a wiring piece to the puzzle, then that needs to be taken into account as well. I'm not interested in providing information that can assist anyone from circumventing something that a company considers to be a proprietary function of their product. On the other hand reverse engineering is as old and ubiquitous as engineered products themselves and many a company got started figuring out how other companies products work. That doesn't mean that copying a slow way to configure an FPGA using JTAG is a smart way to go, especially for a high performance custom board, whether it's meant for in-house use or a product. There are faster ways to configure an FPGA device. Connecting Vivado Hardware Manager to you board is another matter. These are certainly important things to consider early on in the design and development stage for anyone designing a their own board.

Personally, I don't think that AMD/Xilinx should be selling products with their brand name on it with a proprietary configuration or debug interface. Most of my Xilinx FPGA boards use a Digilent JTAG Module... which curiously none of my Digilent FPGA board use. I suppose that it's a cost issue. Regardless, whether or this is a good idea or not is us to board and tool vendors to decide.

Link to comment
Share on other sites

Hi @KLN,

As you have likely concluded, the JTAG SMT2 (as well as all of our other FTDI based JTAG programmers) use an EEPROM with a proprietary configuration that Digilent has chosen not to reveal, much like Xilinx has also made this decision.

Like @zygot indicated there are alternate ways to configure a custom board with a bitstream, though getting the device to be recognized by the Vivado Hardware Manager is the catch. but of course it's not impossible to reverse engineer. I think Adam Taylor also made a post on having an alternate JTAG programming here: https://www.adiuvoengineering.com/post/microzed-chronicles-jtag-using-a-raspberry-pi-pico.


Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Create New...