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 sriganesh21
Visitor
234 Views
Registered: ‎05-24-2019

Quad SPI flash memory in Artix 7

Hi 

    I have Artix 7 FPGA with Quad SPI flash memory. I have configured the flash memory device before it works fine. suddenly it showed this error(refer the image) and memory is not programmed. please help me to resolve this error 

 

image_2019_09_16T06_47_10_410Z.png
0 Kudos
5 Replies
Xilinx Employee
Xilinx Employee
199 Views
Registered: ‎08-10-2008

回复: Quad SPI flash memory in Artix 7

So this flash had been successfully programmed and then configured FPGA right? You were trying to assign a flash image to it and then this error popped up? Can bitstream download to A7 as expected?

If this is the case, first double check the hardware. Connections might got broken, such as ESD.

The second error might be caused by some tool or implementation issue; anyhow the first one means Vivado can no longer access the flash. 

 

------------------------------------------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
---------------------------------------------------------------------------------------------------------
Visitor sriganesh21
Visitor
183 Views
Registered: ‎05-24-2019

回复: Quad SPI flash memory in Artix 7

I have replaced the flash IC with a new one. Three times it was programmed correctly. Then again error pops up.
0 Kudos
Moderator
Moderator
132 Views
Registered: ‎06-05-2013

回复: Quad SPI flash memory in Artix 7

Try to reduce the JTAG frequency (15Mhz and lower) and power cycle the board. Check the mode pins. They should be set correctly before programming.


-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
Visitor sriganesh21
Visitor
72 Views
Registered: ‎05-24-2019

回复: Quad SPI flash memory in Artix 7

I have reduced the frequency, but still, the problem is not resolved.

0 Kudos
Scholar dgisselq
Scholar
53 Views
Registered: ‎05-21-2015

Re: Quad SPI flash memory in Artix 7

@sriganesh21,

It's annoying, but quite possible, to place a flash chip into a state where it doesn't understand SPI commands.  I actually do this all the time.  For example if you can activate the QSPI mode, you can immediately issue an address, wait 6 SCK cycles, and then get data out without needing to add an additional 8 SCK cycles to issue a command.  The problem with this mode is that another controller that isn't familiar with what you are doing (Vivado for example) might then struggle to place the flash into a known good state.

I personally solved this problem in my own flash controller by sending an 16'bit all-ones SPI command to the flash.  1) There's no such command implemented on most flash devices, so it doesn't do anything, and 2) if the flash is in this QSPI mode it then releases it once the CS pin is released.  From that point I can use the flash no matter which mode it's in.

While I'm not quite certain how Vivado programs a flash chip, it's important that you don't try to send SPI commands while you are still in a QSPI mode.  An easy solution to this might be to power down the flash (i.e. the whole board) before attempting to write to it.  That *should* return the flash to a known mode.

Except ... Micron.

The Micron flash chip used on the initial Arty designs had a "feature" where it could power up directly into this mode if so enabled in the Non-volatile Configuration register.  Doing so, however, would be very likely to confuse any flash programmer.  (I could be wrong here ...)  I know that the flash chip on the Arty has been changed now several times, so its not necessarily clear which flash chip you are working with, but it might be something worth checking.

Were this my own design, I'd load an image into the FPGA and start querying the flash myself.  First, I'd start with the ID command (I think it's a 0x9f ...) and read the manufacturers ID off of the part.  If that didn't work, I'd send some all ones SPI commands to the flash (MOSI pin only!) and try again.  Watch out for the fact that chips like Micron may not respond in the number of cycles you are expecting.  (Incidentally, this is probably where Vivado is having troubles ... although it is possible your Vivado is out of date, and that this is a newer flash chip than Vivado recognizes ...)  Look up the part number, find the data sheet for your flash chip, and start querying the various configuration registers to see what's going on.  Yes, there are some chips with configuration registers that cannot be reset.

You can read more about my own flash hassles--with the Arty even, and how I eventually solved them, here.

Dan

0 Kudos