I am working on a project with a Virtex-5 FPGA, the only method for uploading bitstreams is over JTAG, if I remember correctly; is it possible to do it any other way? I am trying to save space on the PCB.
-
\$\begingroup\$ When you say "uploading code and so on," what exactly do you mean? Do you mean to download the configuration bitstream? Or do you want a USB interface to your FPGA design? \$\endgroup\$– JotoriousMar 24, 2016 at 16:17
-
3\$\begingroup\$ BGA is a package type, not a description of what the chip does! What are you ultimately trying to do with it, make a custom USB device of some kind? \$\endgroup\$– pjc50Mar 24, 2016 at 16:18
-
\$\begingroup\$ If I am correct, the FPGA's I am using use JTAG to transfer the compiled C code, I was hoping to be able to do that over a usb interface? to save space on my PCB. \$\endgroup\$– AlexMar 24, 2016 at 16:19
-
\$\begingroup\$ Will edit that. \$\endgroup\$– AlexMar 24, 2016 at 16:19
-
1\$\begingroup\$ Many of the larger parts have multiple different ways of loading bitstreams. JTAG is easiest for development, but in production you can have it load from e.g. serial EEPROM. \$\endgroup\$– pjc50Mar 24, 2016 at 16:21
1 Answer
If I understand what you are asking for, then no. what you are asking for does not exist. Also, your answer above makes no sense. Xilinx' "XPS USB 2.0 EHCI Host Controller" is a piece of IP for connecting USB to your embedded design. That doesn't appear (to me, at least) to be what you are looking for.
-
\$\begingroup\$ My bad, I just noticed after answering it. Damn, thats annoying what is the recommended way to interface a BGA with USB? \$\endgroup\$– AlexMar 24, 2016 at 16:16
-
\$\begingroup\$ @Alex: typically, you would use either a dedicated USB controller chip, or a microcontroller with built-in USB. Also, "BGA" is a package, "FPGA" is a type of integrated circuit. FPGAs may come in BGA packages, but other types of chips do as well. \$\endgroup\$ Mar 24, 2016 at 16:19
-
\$\begingroup\$ Technically, you could have the EHCI controller in your FPGA design, and establish a connection to that controller that writes data to the FPGA's attached configuration ROM, and then have the FPGA reboot itself from the ROM. But every new design you load into the FPGA would have to include that capability as well, or else you will end up "bricking" it, requiring a JTAG programmer to get it going again. This is akin to having a serial bootloader preprogrammed into an MCU. \$\endgroup\$ Mar 24, 2016 at 16:41
-
\$\begingroup\$ ... I regularly work on FPGA designs that can update their own configuration ROMs over various interfaces. But I still do most of the development with a JTAG programmer, because it's a lot more convenient. \$\endgroup\$ Mar 24, 2016 at 16:42
-
\$\begingroup\$ I think I will stick to JTAG. I could integrate a USB to JTAG converter on the PCB? \$\endgroup\$– AlexMar 24, 2016 at 16:45