What methods exist by which to program third-party SPI Flash that can be used to configure on a board?
For more iMPACT Usage Articles and other Configuration Related Articles, see (Xilinx Answer 34104).
Indirect Programming using iMPACT
In this method, the programming cable connects to the FPGA's JTAG port. The iMPACT software first programs the FPGA with a special design that performs the actual SPI PROM programming and uses the JTAG interface as a serial communications port.
For a complete list of support SPI and FPGA devices consult the iMPACT Help.
Direct Programming using iMPACT
In this method, the programming cable is connected to the SPI interface directly, as shown in Figure 4-1 and 4-2 in the Spartan-3 Configuration User Guide (UG332):
http://www.xilinx.com/support/documentation/user_guides/ug332.pdf
iMPACT 8.2i to 11.4, can program STMicro and Atmel SPI Flash in this method.
PicoBlaze Processor SPI Flash Programmer
This method also turns the FPGA into an SPI serial Flash programmer. The FPGA connects to a PC via an RS232 UART and downloads an MCS file from HyperTerminal to the SPI Flash. Refer to the following example designs built for Spartan-3E and Spartan-3A Start Kit respectively:
http://www.xilinx.com/products/boards/s3estarter/reference_designs.htm#picoblaze_spi_flash_programmer
http://www.xilinx.com/products/boards/s3astarter/reference_designs.htm#atmel_spi_flash_programmer
Third-party JTAG programmer
Most third party BSCAN vendors and JTAG tester have SPI programming capabilities. This will shift data in to the SPI via the BSCAN chain and typically have long run times.
Off-board third-party programmer
SPI devices can also be purchased from a distributor pre-programmed.