4  Streaming 
146   Keysight M8195A Revision 2 – Arbitrary Waveform Generator User’s Guide 
 
 
 
The hardware or software is not able to check this limitation. Obeying this rule is the 
responsibility of the user. In order to meet this rule, the user can query the segment 
number that is currently played by the M8195A. 
The dynamic modes have some limitations. The main problem for streaming 
applications is the fact that a pre-defined timing relationship is not always guaranteed 
when switching from one sequence to another sequence. Therefore, especially in the 
continuous modes, it might happen that the current sequence is played one or more 
times before switching to the next sequence. This means the exact number of 
repetitions of a certain sequence cannot be determined. I.e. streaming implementation 
using dynamic modes is not entirely deterministic. 
When the waveforms to be generated are not known in advance, the “Memory Ping-
Pong” feature allows applications to update the contents of a waveform segment during 
active signal generation and then switch execution glitch-free to this updated segment. 
One segment is played in a loop until execution is switched to the updated segment. 
The total number of update operations and switches and therefore the total playtime is 
unlimited. 
 
 
4.3.1  Setup example using the SCPI API 
 
This example shows the “Memory Ping-Pong” using the simplest configuration: 
Continuous (non-triggered) mode, ARBitrary (no sequences). It also works in triggered 
mode and with sequences. 
Preparation: 
  Set the continuous mode. 
:INIT:CONT ON 
  Set sequencing mode to ARBitrary. 
:FUNC:MODE ARB 
  Set dynamic mode. 
:STAB:DYN ON 
  Create two waveform segments. 
TRAC:DEF 1,1280 
TRAC:DEF 2,1280 
  Create two sequence table entries referring to the waveform segments. 
:STAB:DATA 0, 0,1,1,1,0, #hFFFFFFFF 
:STAB:DATA 1, 0,1,1,2,0, #hFFFFFFFF 
  Load first segment with data. 
:TRAC:DATA 1,0,#41280<data_bytes>