Will my Spartan-3E device configure correctly if the mode pins are set to SPI mode and I pulse MBT? Or must PROG_B be used to reset configuration in SPI mode?
Byte-Wide Peripheral Interface (BPI) is unique because the FPGA generates an address to access an addressable parallel flash. The Multi-Boot feature takes advantage of the attached address lines and changes the direction of the address counter so that an image in an alternate location in the parallel flash can be loaded. Therefore, the Multi-Boot (MBT) feature of Spartan-3E FPGAs can only be used in BPI mode, as this is the only configuration mode that generates an address.
The Multi-Boot Trigger (MBT) on the STARTUP_SPARTAN3E component is only monitored when the mode pins are set to BPI. In all other configuration modes the MBT is ignored. To initiate a configuration in another configuration mode other then BPI, the PROG-B pin must be asserted.
When in BPI mode, the MBT pin can be asserted at any time, and a reconfiguration will be initiated. The address counter will start from either the top or bottom address depending upon the previous configuration. Successive pulses on the MBT pin will keep toggling back and forth between images in the parallel flash. Pulsing MBT does not cause the mode pins to be sampled; therefore, in order to revert back to the original mode pins setting, power must be cycled or PROG_B must be asserted.
For more information on BPI or on the Multi-Boot feature, please see the Functional Description module of the Spartan-3E data sheet located at: http://www.xilinx.com/bvdocs/publications/ds312.pdf