Can program FPGA but not PROM on the Spartan-3A dev board

fpgaisexilinx

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

Best Answer

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.

Note:

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

enter image description here