The keep_alive opcode concludes the current burst and initiates a keep alive pattern. This pattern ensures the stability of the Device Under Test (DUT) until a new pattern begins or an abort keep-alive operation halts the execution.

Syntax Reference

Table 3. Syntax Description for the Keep Alive Opcode
Syntax Description
keep_alive Stops the pattern burst and jumps to the keep alive pattern loaded onto the digital pattern instrument. A keep alive pattern is a simple looping pattern that is used to maintain DUT stability. The pattern prevents the DUT from unlocking clocks and PLLs. Use the pattern during operations such as:
  • Loading or unloading patterns
  • Changing time sets or instrument configurations
  • Transitioning between tests in the test program
Use the keep_alive opcode instead of the halt opcode for these types of situations.

Use the keep_alive opcode on the last vector of a keep-alive pattern. The process repeats the pattern continuously. The process keeps doing so until a different pattern interrupts it. Alternatively, someone abort the process.

Entering and Maintaining a Keep Alive Pattern

pattern RegularPattern (Clk, DIO1)
{
    repeat(100)  sample_timeset 1 1;
                 sample_timeset 1 H;

    repeat(100)  sample_timeset 1 0;

    // Jumps to keep alive pattern
    keep_alive   sample_timeset 1 L;
}

keep_alive_pattern KeepAlivePattern (Clk)
{
    // Exit the keep alive pattern by bursting a new pattern
    // or by calling the niDigital Abort Keep Alive VI
    // or the DigitalPatternControl.AbortKeepAlive .NET method.
    keep_alive    -   -;
}