A quick introduction to FPGA based technology for building DAQ systems
What is an FPGA based DAQ system ?
There are many way to build up a DAQ (data acquisition system). The goal of a DAQ system is generally to take an electrical signal of some kind and convert it into digital data for further procession. The simplest DAQ systems are a microcontroller with a built-in ADC (analog to digital converter) and some sort of digital interface or storage device. An example would be a simple temperature logger with a USB port or serial output port.
An FPGA based DAQ system uses an FPGA chip for handling the digital data from an ADC. The FPGA can incorporate its own microcontroller or interface to an external one. An FPGA is a microchip in which the logical functionality can be defined by the user using a special programming language called an HDL such as Verilog or VHDL. Newer high level languages and graphical methods are also emerging such as: LabVIEW FPGA, Simulink HDL coder, and System C. A more detailed description of an FPGA can be found here.
What Benefits does FPGA technology bring to a DAQ system ?
- The ability to create many standard interfaces such as I2S, I2C, SPI, serial i/o, etc. as pins will allow. Most microcontrollers have a limited number of hardware interfaces. Many DAQ applications require multiple interfaces, especially where the number of ADC’s used is high.
- The ability to create non-standard interfaces. Some ADC’s use an SPI like or special serial interface. It can be difficult or impossible to interface some of these directly to a microcontroller.
- The ability to create very high speed interfaces. Many ADC’s have LVDS interfaces allowing data rates higher than 100’s of megabits/s and differential signaling capability.
- The ability to process many streams of data in parallel. An FPGA can have a separate processing channel for each data converter stream where the data is processed simultaneously and independently of the other streams. In addition to speed improvements, this can allow for complex cross channel triggering and processing of different channels at different rates.
- The ability to precisely time data events. Because each section of an FPGA can operate independently the timing system can time an event as soon as it happens. A microcontroller often has to wait for an interrupt to be processed to time an event.
- The ability to create many counters of any size needed. Most microcontrollers are limited to 3 to 6 16 bit counters.
- The ability to implement multiple microcontrollers within the same chip. Instead of relying on one big fast micro to do all the processing work, many independent micros can be instantiated, each with it’s own task.
- Speed. Many modern FPGA’s will run most of their internal logic at speeds exceeding a 100 MHz.
- Complex I/O pins that can meet many different I/O standards. Most FPGA pins can support over 25 types of I/O standards, where micros tend to be limited to one or two.
- Deterministic response time. Unlike software that can be preempted and have variable response times, the HDL code is implemented as a hardware design creating a deterministic response. In some cases, an output signals response to an input signal can be in the sub-nanosecond time range.
In summary, an FPGA bring the ability to build custom logic sub-systems that can all operate in parallel. This gives an FPGA based system tremendous flexibility and capability in building a DAQ system. In the next article the price to be paid for such capability will be investigated.