Skip navigation
Electronic Design
Oscilloscope Triggering Advanced Course: Trigger Sequencing and Software Search Triggers

Oscilloscope Triggering Advanced Course: Trigger Sequencing and Software Search Triggers

This fourth article in the Oscilloscope Triggering Advanced Course discusses the often misunderstood trigger sequencing and software search triggers.

Download this article in PDF format.

Welcome to the Oscilloscope Triggering Advanced Course! In this series, I will walk you through the details of every corner of real-time oscilloscope trigger systems, and by the time we’re done, you’ll never need that AutoScale button again! Your co-workers will be stuck in the lab staring at auto-triggers all weekend while your scope is catching glitches and protocol packets automagically and emailing you the results.  If you’re just joining us now, do yourself a favor and also check out the first three articles in the series to learn about advanced trigger modes and protocol triggering.

In this article, we’re going to dive head-first into two of the most commonly misunderstood advanced trigger features in modern oscilloscopes: trigger sequencing and software search triggers.

Trigger Sequencing

A trigger sequence is a trigger configuration that requires n events to occur in a specified order (the “sequence”) in order for a trigger to occur. Each event in the sequence is referred to as a “stage.”  The final event in the sequence is referred to as the “trigger” event and all preceding events are referred to as “arm” events. Most scopes that support sequence triggering only offer two sequence stages; Figure 1 shows the simplest trigger sequence.

1. This is a generic representation of the simplest possible trigger sequence. Any number of events can be configured for each stage independently of the other. Stage 2 will only become armed after the event configured for stage 1 is detected.

However, some scopes offer more than two stages for sequence triggering. Figure 2 more accurately represents a generalized trigger sequence. Because most scopes that support sequence triggering only offer two stages and often label those stages “A” and “B,” sequence triggering is sometimes referred to as “A/B triggering.”

So why would you want to use a trigger sequence? The simple answer is that you’re interested in capturing behavior that happens after other specific events occur in a specific order.  If we think back on our discussion of advanced trigger modes (the first two articles in this series), we can configure a trigger mode to look for all kinds of behavior—edge transition times, pulse widths, setup-and-hold violations, etc. But all of these trigger modes look for a single condition to be true at a single instant in time. 

2. Here’s a generic representation of a more generalized trigger sequence with n stages. This sequence will function identically to the sequence shown in Figure 1, with the caveat that a stage n will not become armed until the event configured for stage (n - 1) is detected.

Granted, such a condition can get very complex and it may be evaluated over a range of time (i.e., pattern range trigger). However, trigger modes don’t have the concept of a number of different events happening in a particular order. (Note: there are a few count-based trigger modes that evaluate multiple occurrences of the same event.)

3. The Trigger setup dialog is shown on a Keysight Infiniium S-Series scope with sequence enabled (checkbox in the upper left corner). Here, the arm event is depicted by the icon labeled “Edge Transition” on the left. Note that the icon is highlighted with a blue border; this indicates that the portion of the setup dialog below the icons will be used to configure the arm event.

Let’s set up a sequence to arm on a rising edge that takes more than 2 ns to transition on channel 2, and trigger on a pulse width that’s less than 20 ns on channel 1 (Figs. 3 and 4). The setup for these two stages will be presented differently on different scopes. For our examples, we’ll be using a Keysight Infiniium S-Series scope, which offers up to two sequence stages (similar to the diagram in Fig. 1) and presents the setup for each stage separately. The user selects which stage to configure by selecting it in the Trigger setup dialog.

4. Once again, the Trigger setup dialog is shown with sequence functionality enabled. The trigger event is depicted by the icon labeled “Pulse Width” on the right. Note that the icon is highlighted with a blue border; this indicates that the portion of the setup dialog below the icons will be used to configure the trigger event.

Note that the trigger point for any trigger sequence is always the trigger point for the event configured in the final stage. In this example, the final stage is configured as “pulse width less than 20 ns” and the trigger point is set as “end of pulse,” which is exactly what we see at t = 0.0s onscreen (Fig. 5).

5. Here we see the result of our trigger setup from Figures 3 and 4. The trigger point (the falling edge of the pulse on Channel 1) is at t = 0.0s as we expect. Note that in this example, we can see the arm event (the rising edge on Channel 2) on screen, but in many cases the arm event may not be visible in the triggered acquisition. The horizontal scale setting of the scope, as well as the frequencies and relative phase of the signals involved in the arm and trigger events, will determine the likeliness of the arm event being captured in the acquisition.

Advanced Sequence Features: Reset and Delay

In addition to the simple arm-then-trigger sequence, some scopes will allow the user to configure special events in between the stages of a sequence. These features enable the user to not only specify the order of multiple events, but also the time between them, as well as indicate what to do should that time condition be violated. The availability of these features, their limits, and the specifics of their functionality will vary significantly across different scope models.

Sequence delay is a simple timer that can be inserted between sequence stages. Essentially, sequence delay is an additional arm stage—after the preceding arm stage is satisfied (its configured event is detected), the sequence delay timer will start and the following stage will not be armed until the timer completes. Let’s add a 65-ns delay to the trigger sequence we configured earlier as an example (Fig. 6).

6. The Trigger setup dialog in this example shows sequence and sequence delay (checkbox upper middle) functionality enabled. We see that enabling delay added an icon between the icons for the arm and trigger stages, and that we can adjust the delay time.

Sequence reset is a powerful feature that basically allows the user to specify when to ignore an arm event. When reset is enabled, if the configured reset event occurs after the arm stage is satisfied, but before the trigger stage event is detected, the reset block will disarm the trigger stage and reset the arm stage. Essentially, then, it will ignore the first arm event. Two common types of events can be configured as a reset:

Time: Like sequence delay, reset-by-time is a timer inserted between two sequence stages that starts as soon as the preceding stage is satisfied. If the reset timer completes before the following stage is satisfied, a reset will occur, disarming the following stage and resetting the preceding stage.

Events: Reset-by-event allows the user to reset the trigger sequence when a configured input signal goes high or low relative to a threshold.

Let’s configure two different types of sequence reset and add them to our original trigger sequence configuration. We’ll start with reset-by-time at 70 ns (Fig. 7).

7. Here, the Trigger setup dialog shows sequence and sequence reset (checkbox upper middle) functionality enabled. We selected reset-by-time and we see an added icon between the icons for the arm and trigger stages on the reset path.

Next, let’s setup for reset-by-events and configure our reset event as Channel 3 going high (Fig. 8). Note that when we say a signal is “high” or “low,” we’re referring to its position relative to its threshold.

It’s possible in some scopes to use sequence reset and delay simultaneously, but the order in which these will be executed (i.e., does the delay occur before or after the reset?) varies from scope to scope. So, if you want to setup a trigger that uses both, make sure you understand how your scope implements these features.

8. In this example, the Trigger setup dialog once again shows sequence and sequence reset functionality enabled. We selected reset-by-event and see an added icon between the icons for the arm and trigger stages on the reset path. We configured the reset event to be Channel 3 going high relative to its threshold (the “1” in the box next to the Channel 3 marker means high or above the threshold, while a “0” would mean low or below the threshold). Note that the thresholds for all analog channels can be adjusted in the Thresholds dialog, accessible with the “Thresholds…” button on the right side of the dialog shown.

Software Search Triggers

Software search triggering is one of the most powerful features available on modern scopes, but it carries a unique set of limitations that are important to understand. What exactly is a search trigger? The answer is that it isn’t really a trigger at all in the traditional sense. With normal hardware (analog or digital) triggers, the qualification of the trigger event is completely asynchronous to acquisition. Note: while hardware triggers are asynchronous to acquisition, they are still gated (armed/disarmed) by the scope acquisition cycle!

This means that the trigger system can analyze millions of potential trigger events without the scope ever acquiring any digital data. In this scenario, the trigger is armed by the acquisition system immediately following the previous acquisition, and it stays armed until it finds a valid trigger event and fires. While the trigger system is armed, the dead time between finishing the analysis of one potential trigger event and being able to begin analyzing another potential trigger event is very small. Thus, it’s unlikely you could miss the trigger you’re looking for.

Search triggers essentially build an extra layer of analysis on top of the hardware system. First, a hardware trigger is configured (either explicitly by the user or under the hood by scope software). Then, for every hardware trigger that occurs, the scope acquires data and subsequently runs an algorithm to decide whether or not the acquired data passes or fails the configured search trigger conditions.

If the data passes, it’s considered a valid trigger event and data is plotted to the screen for viewing/measurement, etc., just like a regular old hardware trigger. If it fails, the data is discarded and never made available to the rest of the system, the hardware trigger is re-armed, and the cycle starts over. The important thing to note here is that search triggers operate on acquired data. If the hardware trigger fires and starts an acquisition, it won’t be able to re-arm again until after the acquisition and analysis are finished, which increases the probability of missing a valid trigger event.

9. Here, we see the Trigger setup dialog showing software search triggering enabled (search triggering on Infiniium scopes is referred to as “Infiniiscan,” note the checkbox upper middle). Although sequence triggering is disabled (checkbox upper left), the icons seem to show a sequence. This represents that the hardware trigger (icon on the left) always precedes the search algorithm. Below the icons, we see a menu on the left with all of the different options for software search triggering on this scope. We selected “Zone Qualify,” also commonly referred to as “zone trigger.” We’ve drawn two zones relative to Channel 1 on the screen (see Fig. 10). Near the bottom of the dialog we see the zone trigger condition “(Z1

So why would anyone want to use a search trigger if they have a higher probability of missing valid trigger events? Because the search algorithms have access to the complete acquired waveform data, and thus can provide extremely powerful analysis capability that isn’t available in the hardware trigger system.

Search triggers can be configured to look for all kinds of different things: measurement results that exceed certain bounds, protocol packets with certain data, etc. Regarding protocols, not all protocol triggers are search triggers. See my last article in this series for a deep dive on hardware protocol triggering. Search triggers are a convenient way for scope manufacturers to support protocol triggering on frames that lack dedicated hardware.

Let’s look at an example using my personal favorite search trigger: the zone trigger. Zone triggering is one flavor of search trigger where the user arbitrarily defines a number of different two-dimensional zones on the scope screen, each one relative to a signal. For each zone, the user specifies that particular signal must intersect that zone or must not intersect that zone. If you’re familiar with the “mask test” feature on many scopes, you can think of zone trigger as super mask test applied to the trigger system.

10. Here’s the result of the search trigger we configured in Figure 9. Note the two rectangular zones labeled “1” and “2”; both are displayed in yellow because we specified that they were relative to Channel 1. Zone “1” is more of a solid yellow, while zone “2” is more transparent; this is to denote that zone 1 is a “must intersect” and zone 2 is a “must not intersect.” We see that our trigger has correctly captured the event we were looking for—Channel 1 is intersecting zone 1 and not intersecting zone 2. Lastly, note that the trigger point at t = 0.0s is not Channel 1, but the rising edge of Channel 2 that we used for our hardware trigger. Because zone trigger zones are fixed vertically and horizontally on screen, they are relative to the hardware trigger point, which is what is plotted at t = 0.0s.

As an example, let’s set up a zone trigger as follows: rising edge trigger on Channel 2 as the hardware trigger followed by zone analysis on Channel 1 with two different zones (Fig. 9). The results of this configuration are shown in Figure 10. The trigger correctly captured the event we were looking for; Channel 1 is intersecting zone 1 and is not intersecting zone 2.

So when should one consider using a search trigger? The ideal case for a search trigger is anytime you need complex analysis capability above and beyond that offered by the hardware trigger system AND the event that will fire the hardware trigger prior to software analysis is fairly infrequent. The latter allows plenty of time for acquisition and analysis between potential trigger events.

That wraps up our discussion of trigger sequencing and software search triggers. Stay tuned for the next article in the Oscilloscope Triggering Advanced Course, in which we’ll discuss advanced trigger features!

Hide comments


  • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.