
MachXO2 Programming and Configuration Usage Guide
23
The BIT file must be programmed into the external SPI Flash. There are several ways to get the data into the SPI
Flash:
• Diamond Programmer can transmit the SPI Flash data using a JTAG download cable
• A microprocessor running ispVME
• Automatic Test Equipment can program the SPI Flash using JTAG
• Pre-programmed SPI Flash memories can be pre-assembled onto your printed-circuit board
Once the MachXO2 Feature Row is programmed, and the SPI Flash contains your configuration data, you can test
the configuration. Assert the PROGRAMN, transmit a REFRESH command, or cycle power to the board, and the
MachXO2 will configure from the external SPI Flash.
Dual Boot Configuration Mode
Dual Boot Configuration Mode is a combination of Self Download Mode and Master SPI Configuration Mode. The
MachXO2, when set up in Dual Boot Mode, tries to configure first from the internal Flash memory using SDM. If the
SDM configuration fails, the MachXO2 attempts to configure itself using MSPI mode. The load order can’t be
reversed.
The internal data is the primary configuration data, and the external data is the golden configuration data. The pri-
mary image can fail in one of two ways:
• A bitstream CRC error is detected from on-chip Flash memory
• A time-out error is encountered when loading from on-chip Flash
A CRC error is caused by incorrect data being written into the internal Flash memory. Data is read from the Flash
memory in rows. As each row enters the Configuration Engine the data is checked for CRC consistency. Before the
data enters the Configuration SRAM the CRC must be correct. Any incorrect CRC causes the device to erase the
Configuration SRAM and retrieve configuration data from the external PROM.
There is a corner case where it is possible for the data to be correct from a CRC calculation perspective, but not be
functionally correct. In this instance the internal DONE bit will never become active. The MachXO2 counts the num-
ber of master clock pulses it has provided after the Power On Reset signal was released. When the count expires
without DONE becoming active, the FPGA attempts to get its configuration data from the external PROM.
If the SPI Flash POR is higher than the MachXO2 POR and has a slow ramp, here is what happens:
1. MachXO2 powers up.
2. MachXO2 begins toggling MCLK.
3. The preamble from the SPI Flash does not return because its POR level is not met.
4. MachXO2 times out because it fails to get the preamble in time and the boot up likewise fails.
It is highly recommended that an SPI Flash be chosen which POR level is lower than the MachXO2 POR. If one is
not available here are some workaround solutions:
• Processor to hold INITN
• Processor to hold PROGRAMN
• RC delay to INITN