I am working on a project using a Virtex-5 FPGA. The small projects that I've worked on with FPGAs has only required me to program the FPGAs on development boards using JTAG or loading the bit file onto the FPGA. However, I have a newly designed board using an FPGA which I don't believe has even been powered on yet.

I was doing a bit of reading about the FPGA requiring to be configured and was also reading the Configuration guide which talks about the internal memory being written with the configuration data. I don't know if I've missed something or if Xilinx ISE automatically does that when I program the FPGA with it. Can someone shed any additional light on this ?


  • \$\begingroup\$ Configuration is a euphemism for "loading the bitfile". \$\endgroup\$
    – avakar
    Commented Jul 29, 2014 at 17:17
  • \$\begingroup\$ Most FPGAs are SRAM based (there are exceptions, but your part is not one of them) and so must be configured on every power on, not just the first. \$\endgroup\$ Commented Jul 29, 2014 at 18:06

1 Answer 1


The FPGA configuration itself is stored in SRAM (i.e. flip-flops). A newly started FPGA has an empty configuration where typically all pins are in a somewhat idle state (e.g. weak pull-up), and clocks are not forwarded inside the FPGA, so no activity takes place.

From that state, either the FPGA boots actively by accessing an external device (usually, flash memory), or waits until it is configured by external circuitry. Which road is taken usually depends on some resistors on some pins.

The internal block memory can also, but need not, be initialized from configuration data.

Shiny new boards are programmed like all others, by attaching to JTAG and either writing a configuration to the chip, or by poking the chip into writing to flash and subsequently triggering a reconfiguration so the data is loaded.


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.