When using the Multi-boot trigger (MBT) pin on the STARTUP_SPARTAN3E schematic symbol, multi-boot configuration does not work.
The STARTUP_SPARTAN3E has the MBT and the Global 3-state (GTS) swapped on the schematic symbol. This problem is visible in the FPGA Editor view, as you will see the MBT signal routed to GTS and, if used, you will see the GTS signal routed to the MBT pin on the STARTUP_SPARTAN3E block.
There are two possible ways to work around this issue:
- You can manually swap the MBT and GTS routes in the schematic. However, when the software is fixed, you will have to remember to route these signals correctly.
- Xilinx recommends instantiating the STARTUP_SPARTAN3E component in HDL, as this is only a problem with the schematic symbol. By using this method, you will not have to remember to manually fix the schematic routes when this problem is fixed in the software.
-- STARTUP_SPARTAN3E: Startup primitive for GSR, GTS,
-- startup sequence and Multi-Boot Configuration
-- Trigger. Spartan-3E
-- Xilinx HDL Libraries Guide version 7.1i
STARTUP_SPARTAN3E_inst : STARTUP_SPARTAN3E
port map (
CLK => CLK, -- Clock input for start-up sequence
GSR => GSR_PORT, -- Global Set/Reset input (GSR can
-- not be used as a port name
GTS => GTS_PORT, -- Global 3-state input (GTS can
-- not be used as a port name)
MBT => MBT -- Multi-Boot Trigger input
// STARTUP_SPARTAN3E: Startup primitive for GSR, GTS,
// startup sequence and Multi-Boot Configuration
// Trigger. Spartan-3E
// Xilinx HDL Libraries Guide version 7.1i
STARTUP_SPARTAN3E STARTUP_SPARTAN3E_inst (
.CLK(CLK), // Clock input for start-up sequence
.GSR(GSR_PORT), // Global Set/Reset input (GSR can
// not be used as a port name
.GTS(GTS_PORT), // Global 3-state input (GTS cannot
// be used as a port name)
.MBT(MBT) // Multi-Boot Trigger input
This problem has been fixed in 8.1i.