09-04-2015 09:04 PM
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?
09-05-2015 01:00 PM
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.
09-06-2015 09:41 PM
09-06-2015 10:47 PM
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.