The flows for programming the Spartan-3AN device with iMPACT and a third-party programmer such as BP Microsystems are a bit different. iMPACT takes care of many things in the background, like bit ordering and the Bitgen startupclk:CCLK option.
For the Spartan-3AN internal flash programming flow the -spi switch is required. The bits of each data byte are in opposite order from our Xilinx XCFxxP PROMs. The -spi switch corrects the bit ordering in the MCS PROM file for SPI flash that is embedded within the Spartan-3AN.
iMPACT uses the -spi switch when it knows the target device is a Spartan-3AN or SPI flash. You can add this either through the GUI by selecting Multiple design revisions for the Spartan-3AN (even if you only have a single bitstream), or cmd line form by adding the -spi switch.
BitGen Startup Clock
iMPACT automatically changes this to CCLK if you were to have JTAG clock selected. The BPM system will not take this into account. The Startup clock BitGen option must be set to CCLK.
Using BP Microsystems to program the device:
To get the device's internal flash to configure properly, you must complete the following steps when generating the MCS file or in the BPM GUI.:
1. Verify "-spi" option and CCLK is used when generating the MCS file.
2. Verify the XXX Byte Page is selected properly when generating the MCS file or in the BPM GUI.
3. Verify the Authentication Bit is selected properly when generating the MCS file or in the BPM GUI.
4. After configuration, verify the image is correctly by:
a. Read the internal flash back using the BP software (use the 'Read' tab).
b. This reads the contents into a memory buffer in the software, and then you can view it. (File -> Edit Data Pattern)
c. Verify that the Sync Word, AA 99, is present near the beginning of the read-back pattern.