4
\$\begingroup\$

Let me know if this is the wrong place for this, but I am looking to program an FPGA (Spartan 6, I believe) using a microcontroller.

Right now the way I am thinking about doing this is I will load the FPGA program in a .hex file onto the microcontroller memory and load it serially into some sort of JTAG IC which will then subsequently program the FPGA. My question is does this JTAG IC theoretically exist, and if so, what should I be looking for? I am not entirely familiar with JTAG, so maybe that is the source of my confusion.

Thanks in advance!

\$\endgroup\$
3
  • 1
    \$\begingroup\$ 1. FPGA bitstreams are generally fairly large, at least for big FPGAs (1 Mbit+). Do you have that much program space? 2. JTAG is just a specific protocol run over what is basically a SPI bus, so you can do the actual "programming" using just the MCU hardware without too much trouble. There are not likely many, if any special-purpose ICs for JTAG, since it's basically a generic, easily-implemented interface, at least on the hardware level. \$\endgroup\$ Mar 23, 2014 at 1:01
  • 1
    \$\begingroup\$ Also, FPGA programs are not generally stored in .hex files. Most FPGA manufacturers have their own proprietary binary/hexadecimal file formats. \$\endgroup\$ Mar 23, 2014 at 1:02
  • \$\begingroup\$ Thanks for the tips, it very well may be that I do not have enough space, my microcontroller has 128k memory, I will be sure to see what kind of programs the FPGA team wants to utilize. \$\endgroup\$
    – Peter
    Mar 23, 2014 at 18:56

1 Answer 1

5
\$\begingroup\$

If you're serious about this, you need to read UG380, "Spartan-6 FPGA Configuration User Guide". (If it turns out that this isn't the correct FPGA familly, there's a similar document for every family Xilinx produces; just search for it.)

The Overview (starting on p. 15) shows that there are several ways to configure a Spartan-6, and JTAG isn't necessarily the simplest one to drive from a microcontroller. There's a "Slave Serial" mode that will interface directly with the SPI master controller on any micro that has one.

\$\endgroup\$
1
  • \$\begingroup\$ Thanks for the help, I'll be sure to read through the document. The Slave Serial seems like it would be the way to go. \$\endgroup\$
    – Peter
    Mar 23, 2014 at 18:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.