The Spartan 3AN has a on-chip flash memory to store your "program".
You need to ensure you program the flash not the SRAM via JTAG to ensure your program is non-volatile
http://www.xilinx.com/support/documentation/user_guides/ug333.pdf
Spartan-3AN FPGAs include abundant In-System Flash (ISF) memory. The
ISF memory array appears to a Spartan-3AN FPGA application as
SPI-based serial Flash memory. The ISF memory is primarily designed to
automatically configure the FPGA when power is applied or whenever the
PROG_B pin is pulsed Low. However, the ISF memory array is large
enough to store…
Make sure the mode select pins are configured to make use of the internal FLASH
http://www.xilinx.com/support/documentation/user_guides/ug332.pdf
Mode Select Pins, M[2:0] The Spartan-3AN FPGA family is generally
designed to be pin and function compatible with the Spartan-3A/3A DSP
FPGA families. The Spartan-3AN FPGA family supports all the same
configuration modes as the Spartan-3A/3A DSP FPGAs and adds the
ability to configure from the internal In-System Flash memory. To
configure from Internal Master SPI Flash mode, the FPGA mode select
pins must be set to M[2:0] = <0:1:1>. Furthermore, the VCCAUX supply
must be 3.3V.
http://www.xilinx.com/support/documentation/data_sheets/ds557.pdf