iMPACT
Introduction to Indirect Programming – SPI or BPI Flash Memory
Note The following describes indirect programming through a Xilinx FPGA. For a description of indirect programming through a Zynq™-7000 AP SoC, see Zynq™-7000 AP SoC Operations In iMPACT.
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.
Image
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
      OR
    • 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 tables below.
iMPACT SPI Flash Programming Support
7 Series FPGA Family Support
Flash VendorFlash FamilySupported Flash Density SPI Indirect Programming Support
Micron (Numonyx)N25Q 3.3V (1)32Mb – 256MbKintex™-7, Artix™-7
N25Q 1.8V (1)32Mb – 256MbKintex-7,Virtex-7, Artix-7
WinbondW25Q (Rev BV)32Mb – 128MbKintex-7
W25Q (Rev BW)8MbArtix-7
W25Q (Rev FV)64Mb – 128MbKintex-7
W25Q (Rev DW)32Mb – 64MbKintex-7, Virtex®-7. Artix-7
SpansionS25FLxxP (2)32Mb – 256MbKintex-7
S25FLxxS (3)128Mb, 512MbKintex-7
S25FLxxS (3)256Mb, 512MbVirtex-7
S25FLxxS (3)128Mb, 256MbArtix-7
  1. For Numonyx N25Q: Top, Bottom, and Uniform block sectors are supported.
  2. S25FL129P and S25FL256S are supported. 64Kb sector size only. S25FL128P is not supported.
  3. 64kB sector size only.
Virtex and Spartan FPGA Family Support
Flash VendorFlash FamilySupported Flash Density SPI Indirect Programming Support
Micron (Numonyx)M25P 512kB – 128MbSpartan®-3E, Spartan-3A, Spartan-3A DSP, Spartan-6, Virtex-5, Virtex-6
M25PE 1Mb – 16MbSpartan-3E, Spartan-3A, Spartan-3A DSP, Spartan-6, Virtex-5
M45PE 1Mb – 16MbSpartan-3E, Spartan-3A, Spartan-3A DSP, Spartan-6
N25Q 3.3V (1)32Mb – 128MbSpartan-3E, Spartan-6,
N25Q 1.8V (1)32Mb – 128MbVirtex-6
AtmelAT45DB (Rev B, C, and D) 1Mb – 64MbSpartan-3E, Spartan-3A, Spartan-3A DSP, Spartan-6, Virtex-5, Virtex-6
WinbondW25Q (Rev V/CV)4Mb – 64MbSpartan-6
W25Q (Rev BV)4Mb – 128MbSpartan-6
W25Q 1.8V (Rev BW)4MbVirtex-6
W25Q 1.8V (Rev BW)8MbSpartan-6
W25Q 1.8V (Rev DW)64MbVirtex-6
SpansionS25FLxxP (2)32Mb – 128MbSpartan-3A, Spartan-3A DSP, Spartan-6, Virtex-5, Virtex-6
  1. For Numonyx N25Q: Top, Bottom, and Uniform block sectors are supported.
  2. S25FL032P, S25FL064P, and S25FL129P are supported. 64kB sector size only. S25FL128P is not supported.
iMPACT BPI Flash Programming Support
7 Series FPGA Family Support
Flash VendorFlash FamilySupported Flash Density Data Bus WidthBPI Indirect Programming Support (1)
Micron (Numonyx)P33 (Axcell™)64Mb – 1GbD[15:0] (x16)Kintex-7
P30 (Strataflash™, Axcell™) 64Mb – 1GbD[15:0] (x16)Kintex-7, Virtex-7,
Artix-7
M29EW64Mb – 1GbD[15:0] (x16)Kintex-7, Virtex-7 , Artix-7
D[7:0] (x8)
G18F (2)128Mb – 1GbD[15:0] (x16)Kintex-7, Virtex-7, Artix-7
SpansionS29GLxxP128Mb – 1GbD[15:0] (x16)Kintex-7, Virtex-7
D[7:0] (x8)
S29GLxxS128Mb – 1GbD[15:0] (x16)Kintex-7, Virtex-7, Artix-7
 
  1. Indirect BPI programming supports using the 7 series (Virtex-7 and Kintex-7) RS[1:0] pins when they are tied to the upper two BPI Flash address pins..
  2. For Micron G18: Non-Mux interface family members are supported.
Virtex and Spartan FPGA Family Support
Flash VendorFlash FamilySupported Flash Density Data Bus WidthBPI Indirect Programming Support (1) (2)
Xilinx®XCF128X 128Mb D[15:0] (x16) Virtex-5, Virtex-6
Micron (Numonyx) (3)P30 (Strataflash™, Axcell™)64Mb – 1Gb D[15:0] (x16) Spartan-6, Virtex-5, Virtex-6
P33 Axcell64Mb – 1Gb D[15:0] (x16) Spartan-6
J3 (Rev D, F)32Mb – 256Mb D[15:0] (x16) Spartan-6, Virtex-5
D[7:0] (x8) Spartan-3A, Spartan-3A DSP, Spartan-6, Virtex-5
SpansionS29GLxxS128Mb – 1GbD[15:0] (x16)Spartan-6, Virtex-6
S29GLxxP 128Mb – 1Gb D[15:0] (x16)Spartan-6, Virtex-5, Virtex-6
D[7:0] (x8)
  1. Maximum indirect BPI Flash programming TCK frequency is 3 MHz.
  2. Indirect BPI programming supports using the Virtex-6 and Virtex-5 FPGA RS[1:0] pins when they are tied to the upper two BPI Flash address pins.
  3. For Micron (Numonyx) monolithic P30: Top and Bottom parameter boot type are supported, and symmetrical boot type are not supported. P30 48F4400P0 Flash are also supported.
See Also

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