I decided to brush the dust off my Xilinx Spartan-3A starter board that I got a while back, and learn to use Verilog. So with the help of Pong Chu's book FPGA Prototyping By Verilog Examples: Xilinx Spartan-3 Version I got a simple program written and compiled using the Xilinx ISE.

I then launched their IMPACT tool so I could download the program to the board. After a few false starts, I was able to get everything configured (I thought) and download the program to the FPGA, and it ran. But of course if I restarted the board, the demo program that came with the board was loaded off the PROM and started running again.

So I then tried to program the PROM instead. Even thought the IMPACT console says the part is programmed (see below), when I restart the board I still get the original demo program running again.

enter image description here


1 Answer 1


You've got the wrong device.

enter image description here

In order to program the SPI Flash using the indirect JTAG method, you need to right click on the FPGA and select Add BPI/SPI Flash. It'll ask for the device type and your programming files. The type should be SPI Flash M25P16 according to this document, page 106. Then highlight the SPI Flash you just added and select the Program operation. When the Programming Properties comes up, Xilinx recommends you tick the Verify and Erase before programming options.

These instructions, and more, are available in the Spartan-3A FPGA Starter Kit Board User Guide, the programming instructions for the indirect method start on page 103.


If the above doesn't work, check your Jumper settings. Taken from the User Guide. Page 103.

enter image description here

  • \$\begingroup\$ Thank you. That worked. I didn't realize there were multiple ways I could program the configuration. When switching the jumpers to the indirect SPI mode, I found one jumper that was probably set wrong for the Platform Flash PROM that I was trying to use, so I'm guessing that's why I couldn't program it. A little frustrating when the screen says Programming Successful when it wasn't. But the SPI Flash works fine so I'll stay with that. \$\endgroup\$
    – tcrosley
    Nov 28, 2014 at 6:11

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.