Introduction to Indirect Programming – SPI or BPI Flash Memory
iMPACT can program certain BPI or SPI Flash devices indirectly, by preloading into the FPGA a design that understands the boundary-scan (JTAG) protocol and converts the applied data to BPI or SPI bus relationships. This FPGA design serves as a bridge between the iMPACT programming tool and the Flash device connected to the FPGA. The design is downloaded into the FPGA by iMPACT (using a Xilinx® cable) to make the indirect programming of the SPI or BPI Flash device possible.
For a detailed description of indirect programming, see these Xilinx Application Notes:
  •  Indirect Programming of SPI Serial Flash PROMs with Spartan®-3A FPGAs (XAPP974)
  •  Indirect Programming of BPI PROMs with Virtex®-5 FPGAs (XAPP973)
For SPI and BPI configuration information, see the FPGA Configuration User Guide pertaining to the FPGA that will be used for indirect programming. These User Guides are available from the Documentation Web page on the Xilinx website.
The indirect programming solution in iMPACT is used during prototype design stages and is supported by the Xilinx FPGAs that have a direct SPI or BPI flash configuration mode. Refer to the table below for the supported Xilinx FPGAs and Flash memory devices.
Requirements for the indirect programming solution are:
  •  The iMPACT software.
  •  A supported Xilinx FPGA with a supported Flash device attached. This will be:
    •  An FPGA attached to an SPI Flash memory through an SPI direct configuration interface
    •  An FPGA attached to a BPI Flash memory through a BPI direct configuration interface.
  •  A Xilinx cable and connector.
iMPACT supports select SPI and BPI Flash memories. The Flash devices supported by iMPACT’s indirect programming are listed in the table below.
iMPACT SPI Flash Programming Support
Flash VendorFlash FamilySupported Flash Density SPI Direct Programming Support?SPI Indirect Programming Support
NumonyxM25P 512Kb – 128MbYesSpartan-3E, Spartan-3A, Spartan-3A DSP. Spartan-6, Virtex-5, Virtex-6
M25PE 1Mb – 16MbYesSpartan-3E, Spartan-3A, Spartan-3A DSP, Spartan-6, Virtex-5
M45PE 1Mb – 16MbYesSpartan-3E, Spartan-3A, Spartan-3A DSP, Spartan-6, Virtex-5
AtmelAT45DB (Rev B, C, and D) 1Mb – 64MbYesSpartan-3E, Spartan-3A, Spartan-3A DSP, Spartan-6, Virtex-5
WinbondW25Q 16Mb – 64MbYesSpartan-6
iMPACT BPI Flash Programming Support
Flash VendorFlash FamilySupported Flash Density Data Bus WidthBPI Indirect Programming Support (1)
XilinxXCF128X 128Mb D[15:0] (x16) Virtex-5 (2), Virtex-6 (2)
Numonyx (3)P30 64Mb – 256Mb D[15:0] (x16) Spartan-6, Virtex-5 (2), Virtex-6 (2)
J3 (Rev D, F) (4)32Mb – 256Mb D[15:0] (x16) Spartan-6, Virtex-5 (2), Virtex-6 (2)
D[7:0] (x8) Spartan-3A, Spartan-3A DSP, Spartan-6, Virtex-5 (2), Virtex-6 (2)
  1.  The maximum indirect BPI programming TCK frequency is 6 MHz (default Platform Cable USB speed).
  2.  Virtex-5 and Virtex-6 indirect BPI programming supports RS[1:0] pin usage when the FPGA’s RS pins are tied to the upper two BPI Flash address pins of the target Flash density.
  3.  Numonyx monolithic die and Top boot BPI Flash are supported. Stacked die and Bottom or Uniform boot BPI Flash are not supported.
  4.  J3-65nm (Rev F is available in 256Mb)
See Also

© Copyright 1995–2009, Xilinx® Inc. All rights reserved.