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!

Showing results for 
Search instead for 
Did you mean: 
Registered: ‎06-22-2011

large non-volatile storage in Zynq system



I need non-volatile storage > 1GB for a Zynq system. Due to the environmental restrictions, SD is not in my list.

What other solutions do I have?




Chao Xiang

0 Kudos
3 Replies
Registered: ‎11-25-2014

Re: large non-volatile storage in Zynq system

How much storage do you need, and how fast does it need to be in terms of read/write throughput? Can it hang off of the PL or does it need to be available at boot time?


If the storage can hang off of the PL then you can put a NAND controller in the PL. Here's one:




This controller can manage up to 32GB of NAND.


Since you said you can't use an SD card I'm guessing you can't use external USB storage either? If that's true, and if you need > 32GB and/or need faster access, then you might look into PCIe SSDs. You can get PCIe SSDs in the M.2 format that are awesome for internal storage. The advantages of an SSD vs. discrete NAND are size and throughput, plus the fact that the SSD will include a very sophisticated controller that manages the NAND (wear leveling, bad block management, etc) much better than a controller in the PL.

0 Kudos
Xilinx Employee
Xilinx Employee
Registered: ‎07-23-2012

Re: large non-volatile storage in Zynq system

You may look into eMMC devices. I'm not sure whether you want to use the non-volatile memory for booting or not.
Please mark the post as "Accept as solution" if the information provided answers your query/resolves your issue.

Give Kudos to a post which you think is helpful.
0 Kudos
Scholar milosoftware
Registered: ‎10-26-2012

Re: large non-volatile storage in Zynq system

The zynq has a built-in NAND controller. I've measured it to read at about 10MB/s on a 256MB device using the 16-bit interface. Max size was about 8Gbit I think, but you'd have to read the datasheet to get the exact number.


The QSPI controller is somewhat faster, about 30MB/s in real world (theoretically ~50MB/s).


Neither NAND nor QSPI controller support any DMA, so transfers use up 100% CPU time.


There are NAND chips available that you can connect to the QSPI controller, so you can get larger QSPI memory.


eMMC is big and fast.


You can also get flash memories that you can attach to the high-speed serial transceivers (7015, 7030, etc, not on the 7020) for loads of storage and speed. On devices with these tranceivers you could also implement  SATA controller IP.


Depending on your application, you could also opt for a separate FPGA/CPU solution and get a CPU with more storage support.

0 Kudos