+90ns<Min> => "Run Experiment Loops": SyncWhile(reg"Digitizer Engine.Loops" < 1) {
    +260ns<Min> => "Initialize registers": SyncMultiSequenceBlock {
        Engine "Digitizer Engine" {
            +10ns => "steps = 0": reg"Digitizer Engine.Steps" = 0
            +10ns => "acq_delay = initial_acq_delay": reg"Digitizer Engine.Acquisition Delay" = 250
        }
        Engine "AWG Engine" {
            +10ns => "wfm_id = 0": reg"AWG Engine.Waveform ID" = 0
            +10ns => "tau = initial_tau": reg"AWG Engine.Tau" = 10
            +10ns => "pulse_length = initial_pulse_length": reg"AWG Engine.Pulse Length" = 20
        }
    }
    +70ns<Min> => "Run Experiment Steps": SyncWhile(reg"Digitizer Engine.Steps" < 5) {
        +260ns<Min> => "Share steps->wfm_id": SyncRegisterSharing {
            reg"Digitizer Engine.Steps"[2:0] => [reg"AWG Engine.Waveform ID"]
        }
        +10ns<Min> => "Generate waveforms": SyncMultiSequenceBlock {
            Engine "Digitizer Engine" {
                +30ns<?> => "WaitTime: acq_delay": WaitTime(reg"Digitizer Engine.Acquisition Delay")
                +10ns => "DaqTrigger(CH1, CH2, CH3, CH4)": ActionExecute([action"DAQ1Trigger", action"DAQ2Trigger", action"DAQ3Trigger", action"DAQ4Trigger"])
                +10ns => "steps++": reg"Digitizer Engine.Steps" = reg"Digitizer Engine.Steps" + 1
                +10ns => "dig_counter++": reg"Digitizer Engine.Digitizer Counter" = reg"Digitizer Engine.Digitizer Counter" + 1
                +10ns => "acq_delay += tau_step": reg"Digitizer Engine.Acquisition Delay" = reg"Digitizer Engine.Acquisition Delay" + 20
            }
            Engine "AWG Engine" {
                +70ns<?> => "Check wfm_id": If(condition = (reg"AWG Engine.Waveform ID" > = 1), MatchingBranches = TRUE) {
                    +30ns => "wfm_id = 0": reg"AWG Engine.Waveform ID" = 0
                }
                +100ns => "QueueWaveform(CH1, wfm_id)": M3202A-HV1.AwgQueue(Channel = 1, ApplyDelayed = FALSE, WaveformId = reg"AWG Engine.Waveform ID", Cycles = 1, TriggerMode = SWHVITRIG_CYCLE, StartDelay = 0ns, Prescaler = 0)
                +100ns => "QueueWaveform(CH2, wfm_id)": M3202A-HV1.AwgQueue(Channel = 2, ApplyDelayed = FALSE, WaveformId = reg"AWG Engine.Waveform ID", Cycles = 1, TriggerMode = SWHVITRIG_CYCLE, StartDelay = 0ns, Prescaler = 0)
                +100ns => "Queue ROwaveRise CH3": M3202A-HV1.AwgQueue(Channel = 3, ApplyDelayed = FALSE, WaveformId = 1000, Cycles = 1, TriggerMode = SWHVITRIG_CYCLE, StartDelay = 0ns, Prescaler = 0)
                +100ns => "Queue ROwaveRise CH4": M3202A-HV1.AwgQueue(Channel = 4, ApplyDelayed = FALSE, WaveformId = 1000, Cycles = 1, TriggerMode = SWHVITRIG_CYCLE, StartDelay = 0ns, Prescaler = 0)
                +100ns => "Queue ROwaveFall CH3": M3202A-HV1.AwgQueue(Channel = 3, ApplyDelayed = FALSE, WaveformId = 1001, Cycles = 1, TriggerMode = SWHVITRIG_CYCLE, StartDelay = 0ns, Prescaler = 0)
                +100ns => "Queue ROwaveFall CH4": M3202A-HV1.AwgQueue(Channel = 4, ApplyDelayed = FALSE, WaveformId = 1001, Cycles = 1, TriggerMode = SWHVITRIG_CYCLE, StartDelay = 0ns, Prescaler = 0)
                +2300ns => "AwgTrigger(CH1, CH2)": ActionExecute([action"AWG1Trigger", action"AWG2Trigger"])
                +30ns<?> => "WaitTime: tau": WaitTime(reg"AWG Engine.Tau")
                +150ns => "AwgTrigger(CH3, CH4)": ActionExecute([action"AWG3Trigger", action"AWG4Trigger"])
                +30ns<?> => "WaitTime: pulse_length": WaitTime(reg"AWG Engine.Pulse Length")
                +10ns => "2nd AwgTrigger(CH3, CH4)": ActionExecute([action"AWG3Trigger", action"AWG4Trigger"])
                +10ns => "tau += tau_step": reg"AWG Engine.Tau" = reg"AWG Engine.Tau" + 20
                +10ns => "pulse_length += delta_length": reg"AWG Engine.Pulse Length" = reg"AWG Engine.Pulse Length" + 10
                +10ns => "awg_counter++": reg"AWG Engine.AWG Counter" = reg"AWG Engine.AWG Counter" + 1
                +10ns => "Step Delay": Delay()
            }
        }
    }
    +260ns<Min> => "Loop Delay": SyncMultiSequenceBlock {
        Engine "Digitizer Engine" {
            +10ns => "loops++": reg"Digitizer Engine.Loops" = reg"Digitizer Engine.Loops" + 1
            +20ns => "Loop Delay": Delay()
        }
        Engine "AWG Engine" {}
    }
}
+260ns<Min> => "Execution Completed": SyncMultiSequenceBlock {
    Engine "Digitizer Engine" {
        +10ns => "hvi_done = 1": reg"Digitizer Engine.HVI Done" = 1
    }
    Engine "AWG Engine" {}
}
