This project allows investigators to build their own data acquisition instruments to collect and statistically process data in real time, then send the results to a PC via USB 2.0 from a board built around a field-programmable gate array (FPGA) chip. Users can access data through a set of National Instruments' LabVIEW VIs, or directly through an included dynamic-link library (DLL). The user can access the collected data on request from the FPGA board, and can use this data in custom applications. This is the second iteration of the project; the main upgrade is a transfer to USB drivers which work with Windows 7, 32- and 64-bit platforms. However a few other improvements and additions have been made also.
(For the previous version of the project, click here).
This instrument was built to perform pulse time stamping and multiple coincidence detection for single photon detection and statistical analysis in quantum information experiments. However, users can modify the data collection algorithm to create a custom instrument. Because data transfer protocols are already written and debugged, users can significantly decrease development time. At the same time, the project requires a minimal investment in hardware with the bulk of the cost in an inexpensive and commercially available FPGA testing board which requires no significant modifications. Setup requires only software installation, and wiring and mounting the board, which involves basic soldering and hole-punching or drilling sheet metal.
The platform is based on a Xylo-EM board built by knjn and consists of four parts.
1. Our FPGA firmware. Two varieties are included: one incorporates a data collection algorithm for collecting click and coincidence data; the other does detailed time-stamping. Each also includes two user-controlled TTL output channels, and handles the data transfer protocol through a Cypress FX2 chip for USB 2.0 connectivity.
2. Cypress FX2 driver for Windows 7 32- and 64-bit (knjn also provides this driver with the Xylo-EM board) to support USB 2.0 connectivity from the computer to the FPGA board.
3. LabVIEW VIs (2013, 2012, 2011 editions) to handle the coincidence and time-tagging data acquisitions and TTL pulse generation.
4. Our C++ code (mid-level driver) and compiled DLL that receives the acquired data and prepares it for the LabVIEW interface in real time.
The end-user can customize the code to process and/or graph the received data.
Purpose and function:
Purpose and function: