UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Visitor rick.b.brown
Visitor
8,684 Views
Registered: ‎08-27-2010

Unable to program configuration SPIx1 flash via Artix-7 (XC7A50T)

Jump to solution

We're experiencing a problem where we are unable to program the configuration flash.

 

FPGA P/N: XC7A50T-2CSG325C

Flash P/N: S25FL128SAGBHIA10  (Spansion, 256k sector)

Synthesis Tool: Vivado 2015.1

Lab Tool: Vivado 2016.1

 

Vivado inconsitently reports both passing and failed blank checks.  Vivado always reports program verify as unsuccessful.

We've attempted to program flash without verifying; however, the FPGA failed to boot from flash.  A viado log file is attached.

 

Using an external analyzer, we were able to read and write to the flash device.

 

While exploring timing from the FPGA to the device, we notice a couple oddities we were not expecting (see attached scope shot):

 

1) MOSI appears to change on the rising edge of CCLK; contrary to note 8 on Figure 2-12 and as shown in Figure 2-13 of the configuration user's guide.  (We tried this with the spi_edge_falling set to yes and no with no apparent change to this timing relationship)

 

2) We've set the ConfigRate option to 3MHz; however, the CCLK frequency as measured is not (~7MHz) 

 

Any ideas?

Tags (2)
6MHz_SPI_Timing.png
0 Kudos
1 Solution

Accepted Solutions
Visitor rick.b.brown
Visitor
13,581 Views
Registered: ‎08-27-2010

Re: Unable to program configuration SPIx1 flash via Artix-7 (XC7A50T)

Jump to solution

This was ultimately resolved via the service request process.  Root cause is VCCBRAM is out of spec due to design error where these pins are connected to the incorrect voltage net.

 

Two things we learned which may be helpful to others:

1) SPI interface timing during the indirect programming process is different than the documented timing during FPGA configuration.

2) BRAM is used to for buffering data between clock domains during the indirect programming process.

0 Kudos
4 Replies
Xilinx Employee
Xilinx Employee
8,617 Views
Registered: ‎07-21-2014

Re: Unable to program configuration SPIx1 flash via Artix-7 (XC7A50T)

Jump to solution
Hi,

Can you please share the schematic here?
Please attach configuration properties that you have set in xdc file and command you have used to generate mcs file along with .prm

-Shreyas
----------------------------------------------------------------------------------------------
Try to search answer for your issue in forums or xilinx user guides before you post a new thread.

Kindly note- Please mark the Answer as "Accept as solution" if information provided solves your query.
Give Kudos (star provided in right) to a post which you think is helpful and reply oriented.
----------------------------------------------------------------------------------------------
0 Kudos
Visitor rick.b.brown
Visitor
8,608 Views
Registered: ‎08-27-2010

Re: Unable to program configuration SPIx1 flash via Artix-7 (XC7A50T)

Jump to solution

Hi Shreyas,

 

I have attached the schematic sections pertaining to the configuration portions. Please see attached.

 

Here’s command to generate MCS:

write_cfgmem  -format mcs -size 16 -interface SPIx1 -loadbit "up 0x00000000 C:/SpiCheckout.bit " -file "C:/SpiCheckout.mcs"

 

Here’s the XDC constraints for “master SPI” configuration (created by “Edit Device Properties”)

set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 1 [current_design]

set_property BITSTREAM.CONFIG.SPI_FALL_EDGE NO [current_design]

set_property BITSTREAM.CONFIG.UNUSEDPIN PULLUP [current_design]

set_property CONFIG_MODE SPIx1 [current_design]

 

set_property BITSTREAM.CONFIG.CONFIGRATE 3 [current_design]

set_property CONFIG_VOLTAGE 2.5 [current_design]

set_property CFGBVS VCCO [current_design]

 

Prom file is also attached. (please remove the extra .txt, for some reason, the UI kept stripping off the attachment as non-text/plain)

 

--Rick

0 Kudos
Visitor rick.b.brown
Visitor
8,432 Views
Registered: ‎08-27-2010

Re: Unable to program configuration SPIx1 flash via Artix-7 (XC7A50T)

Jump to solution

Shreyas,

 

Any updates? 

 

--Rick

0 Kudos
Visitor rick.b.brown
Visitor
13,582 Views
Registered: ‎08-27-2010

Re: Unable to program configuration SPIx1 flash via Artix-7 (XC7A50T)

Jump to solution

This was ultimately resolved via the service request process.  Root cause is VCCBRAM is out of spec due to design error where these pins are connected to the incorrect voltage net.

 

Two things we learned which may be helpful to others:

1) SPI interface timing during the indirect programming process is different than the documented timing during FPGA configuration.

2) BRAM is used to for buffering data between clock domains during the indirect programming process.

0 Kudos