Synchronize DSA Modules in FPGA

Updated Apr 27, 2023

Environment

Hardware

  • NI-9233
  • NI-9234
  • NI-9237
  • NI-9225
  • NI-9202
  • NI-9218
  • NI-9227
  • NI-9229
  • NI-9232
  • NI-9235
  • NI-9236
  • NI-9238
  • NI-9239
  • NI-9242
  • NI-9244
  • NI-9246
  • NI-9247
  • NI-9250
  • NI-9251

Software

  • LabVIEW FPGA Module

  • I have some dynamic signal acquisition (DSA) modules in my CompactRIO and I would like to synchronize them in LabVIEW FPGA. How should I go about doing this?
  • I am using a cRIO with two dynamic signal acquisition cards. Based on the recorded data, the data collected by one lags the other. Sometimes they are synchronized, other times they are not. What should I do?

If you are using two DSA modules of the same model (ie. two 9233s) all that is needed to synchronize them is to start them simultaneously. For synchronizing two different models, however, you will need to first export the clock from your fastest module and use that clock for the other modules. You will then need to take into account the group delay for each module, as the modules will begin acquiring data at the same time when in the same loop.

The above method is described in How to Compensate for Different Group Delays with C Series Modules in LabVIEW FPGA

The best method for synchronizing different DSA Modules in LabVIEW FPGA is to have the I/O Nodes for each module in the same while loop. If you have the I/O Nodes for the different modules in parallel while loops, there will be additional startup delays that need to be taken into consideration. These startup delays will need to be benchmarked on a module-to-module basis to determine how to synchronize the acquisition.