Additional onboard real-time digital signal processing includes:
The use of the onboard FPGAs is crucial since it operates on the raw data stream and performs vital pre-processing and data reduction. They offer a high degree of parallelism, but computational resources such as multiply-accumulate (MAC) units are finite, and this can sometimes be limiting. One such example is Fast Fourier transform (FFT), where it can be challenging to implement long FFTs (with many frequency bins) inside the onboard FPGA.
These devices are typically programmed using hardware description languages (HDLs) such as VHDL or Verilog, although so-called high-level synthesis (HLS) can also be used. Without the onboard FPGAs, it would be impossible to adjust the raw data rate to fit the capacity of the data link to the host PC. In general, it is beneficial to perform as much pre-processing and data reduction as possible in the FPGA, but some processing is better done by post-processing in a GPU instead.
- Digital baseline stabilizer (DBS) for a precise temperature-compensated baseline as a stable reference for determining peak height (figure 4).
- Pulse detection firmware (FWPD) for data compression to list of peaks in the FPGA
- Advanced time-domain firmware (FWATD) for noise suppression through thresholding and averaging of waveforms in the FPGA.
The data acquisition boards also support peer-to-peer (P2P) streaming to cost-efficient graphics processing units (GPUs) for post-processing. P2P offers a huge advantage compared to conventional solutions which require data to be copied via the RAM of the host PC. With P2P, both the CPU and RAM can instead be used for other tasks and data can be streamed at rates of 7 Gbyte/s.