Electronic – Interfacing FPGA and a storage device

fpgasd

I'm doing this project called "High data rate logger".

The requirements for this project is to sample the 2 analog signals simultaneously.

  • 2x channel 14-bit ADC
  • Store 60 MSps (mega samples per second), which is roughly 250 MBps sustained write speed
  • Storage medium must be able to accommodate 500 GB to 1 TB worth of data

Storage medium:

M.2 PCI-Express is the latest interface for SSDs (solid state drive). But I am not sure if I can interface an SSD to FPGA through PCIe 2.0 x4 (PCI express generation 2, with 4 lanes) Interface, because of its complications.

A host that can interface with the above cards:

Since I am not able to find a processor which has parallel LVDS input lines to be interfaced to ADC, I am thinking to proceed with an FPGA.

But at the other end I have to interface a storage medium like SSD,or SD cards, or NAND flash memory or any other possible solution.

There are many solutions for storage medium with required memory as well as speed. But the problem is interface. Some common memory interfaces are: PCI express, SATA III (6Gbps), SD card interface, etc.

Therefore I would request anybody to suggest which interface would be feasible, easier and better to interface using FPGA.

If an appropriate standard interface is selected, I could go ahead with selecting an FPGA and designing a data logger.

Best Answer

We've just built a logger with a data rate of that order of magnitude. The data are captured on an FPGA and then sent over to a PC using USB3.0 which then writes it to disk.

Assuming your logging latency is not critical (which it usually isn't) I imagine you could do the same.

If you use an Opal Kelly FPGA board, the HDL interfaces and driver development are very straightforward. I have no connection other than as a satisfied customer!

Alternatively, using a PCIe plugin card with the Xillybus driver provides another straightforward HDL and driver experience. 250MB/s is pushing it for a single lane of PCIe, but as you say a x4 interface will be OK.

Or the full-custom approach of building it all from scratch is of course open to you if you have time, but no money. I'd still build something to interface to a PC though, rather than trying to go direct to disk from the FPGA.

Related Topic