FPGA based high speed real time data recorder

This project builds a FPGA controlled analog card that can transfer sampled analog data to computer through USB 2.0 interface. I have achieved over 30MB/s stable real time data recording using this device. Data are received by a libusb based python script and written into hard drive. So the recording length is totally limited by the free space of your hard drive.

This is the device itself.

Analog Device: AD8023 40MS/s 10bit ADC, Xilinx: Spartan-6 XC6SLX25 FPGA, Cypress: CY7C68013 USB 2.0 controller

fpga_usb_analog_card

A hertz level sine wave recorded by this device. The data file is 200MB in size and I use mmap to speed up the reading process and prevent memory overflow. I have tested to record for more than a minute, it did not lose any packet!fpga_analog_recorder