How To Use PXIe-5433 To Generate Arbitrary Waveform Which The sequence Is Beyond Memory Limit?

Updated May 12, 2025

Environment

Hardware

  • PXIe-5433

Software

  • LabVIEW

Other

The NI PXIe-5433 is a high-performance, 16-bit, dual-channel arbitrary waveform generator (AWG) designed for advanced signal generation applications. It offers a combination of high speed, precision, and flexibility, making it suitable for complex test scenarios.

In some application scenarios, it may require putting over 10 thousand pieces of small waveforms in sequence and repeating them to generate. The PXIe-5433 has a limitation of board memory and can not write everything into memory and then output. Do we have an alternative way to realise such a requirement by PXIe-5433?

Streaming is a way to generate waveforms that are too large to fit in the onboard memory of the signal generator. Streaming can be used in arbitrary waveform, arbitrary sequence, or script output modes.

NI-FGEN provides the following programmatic examples:
  • LabVIEW: Fgen Arb Waveform Streaming.vi
  • LabWindows/CVI: ArbitraryWaveformStreaming.prj

The following example shows a case when you want to generate a 1.6 GB waveform using an NI arbitrary waveform generator with 256 MB of onboard memory. This 1.6 GB waveform may be in the host memory, on disk, or data that your application generates dynamically during generation.

1 - Open a session to the Arbitrary Waveform Generator (AWG).
2 - Configure the niFgen Output Mode to Arbitrary Waveform Mode.
3 - Set the sample rate.
4 - Allocate an onboard waveform to be used for streaming.<All Samples>
5 - Specify the previously allocated waveform as the streaming waveform.  Also configure this operation for a single triggered generation that repeats the waveform N times.

6 - (Optional) Specify the maximum timeout value, in seconds, that NI-FGEN waits before timing out during a streaming write operation.
7a - Generate the Waveform Data
7b - Fill the streaming waveform with initial data before starting.
8 - Initiate generation.

9 - Write the new data. This example re-uses the same data that filled the waveform in Step 8.
10 - Exit the loop on an error, if the stop button was pressed,  or if there are no additional blocks to write.

11 - If the write operation stopped because all the data blocks were written,  wait until generation is done. Note: Change the timeout to a larger value if generating at a slower rate or the waveform is particularly large, such as 500 MB on a 512 MB device.
12 - Abort generation.
13 - Close the session to the AWG.