Direct DMA

NI Signal Generator

Direct DMA

Direct DMA can transfer waveform data to the signal generator onboard memory at rates well beyond the typical 5 to 30 MB/s range in a standard PC-based architecture. To achieve such high rates, direct DMA establishes a direct connection between the signal generator onboard memory and a specialized waveform data source. Direct DMA is commonly used to stream waveform data from disk at data rates of 100+ MB/sec. Conduant's StreamStor™ products are one example of direct DMA-compatible data sources.

Configuring Your Application for Direct DMA

The following instructions are a guide for configuring your application for direct DMA.

  1. Enable the signal generator for direct DMA writes by setting the Direct DMA Enabled property or the NIFGEN_ATTR_DIRECT_DMA_ENABLED attribute. Once enabled, NI-FGEN monitors and reports any issues with the direct DMA transfer.
  2. Identify the waveform data source and set the Direct DMA Window Address property or the NIFGEN_ATTR_DIRECT_DMA_WINDOW_ADDRESS attribute to the address provided by your direct DMA-compatible data source.
  3. Set the Direct DMA Window Size property or the NIFGEN_ATTR_DIRECT_DMA_WINDOW_SIZE attribute to the size of the memory window provided by your direct DMA-compatible data source.
  4. Use the niFgen Write Waveform I16 Direct DMA VI or the niFgen_WriteBinary16Waveform function to write blocks of data to the signal generator. For each block of data written to the signal generator, you provide the address of the direct DMA window instead of an array of samples residing in host memory. NI-FGEN detects when the address is within the direct DMA window and handles the transfer appropriately.