Trigger Setup

The Ndigo6G-12 records analog waveforms using zero suppression. Whenever a relevant waveform is detected, data is written to an internal FIFO memory.

Each ADC channel has two trigger units. These can be configured independently (e.g., one unit could trigger on rising edges, the other on falling). They are configured with config.trigger.

Each ADC channel has a corresponding trigger block that determines whether data is written to the internal FIFOs. The trigger blocks are configured with config.trigger_block. Each trigger block can take any amount of trigger units as a source (for details, see ndigo6g12_trigger_block::sources or Trigger inputs), thus, enabling sophisticated trigger setups.

Trigger Configuration

Analog Inputs

Users can specify a threshold and can choose whether triggering is used whenever incoming data is below or above the threshold (level triggering, see Figure 15) or only if data exceeds the threshold (edge triggering, see Figure 16).

Example for level triggering of the Ndigo6G-12.

Figure 15 Example for level triggering.

Example for edge triggering of the Ndigo6G-12.

Figure 16 Example for edge triggering.

A gate length can be set to extend the recording window by multiples of 5 ns. Furthermore, a precursor window can be specified, causing the trigger unit to write data to the FIFO (precursor \(\times\) 5 ns) before the trigger event.

When edge triggering is used, all packets have the same length of (precursor + length + 1)-cycles of 5 ns. For level triggering, packet length is data dependent.

If retrigger is enabled and the trigger conditions are fulfilled during the recording of the postcursor, the recording window is extended (see Figure 14).

Ndigo6G-12 triggering in 4-channel mode

Figure 17 Triggering in 4-channel mode at 8 samples per clock cycle.

Ndigo6G-12 triggering in 2-channel mode

Figure 18 Triggering in 2-channel mode at 16 samples per clock cycle.

Ndigo6G-12 triggering in 1-channel mode

Figure 19 Triggering in 1-channel mode at 32 samples per clock cycle.

Digital Inputs

For all digital inputs, the configuration value ndigo6g12_trigger::threshold is ignored. Their trigger threshold is configured by ndigo6g12_configuration::tdc_trigger_offsets.

Equivalently to the analog inputs, edge- or level-trigger functionality can be enabled using ndigo6g12_trigger::edge. The duration of a level trigger is solely limited by the AC-coupling (see Figure 6 for the effects of AC-coupling on a signal).

Trigger inputs

A trigger_block can use several input sources:

Trigger inputs from the above sources can be concatenated using a logical OR by setting the appropriate bits in the bitmask (see ndigo6g12_trigger_block::sources).

See also Figure 22.

Logic of the analog inputs.

Figure 20 From the ADC inputs, a trigger unit creates an input flag for the trigger matrix. Each digitizer channel (A, B, C, D) has two trigger units.

Logic of the digital inputs.

Figure 21 The digital inputs TDC0, TDC1, TDC2, TDC3, TRG, and GATE have simpler trigger units.

Triggermatrix of the Ndigo6G-12

Figure 22 Trigger Matrix. The eight trigger signals from the four analog channels and the trigger signals from the six digital channels (four TDC channels, TRG, GATE) can be combined to create a trigger input for each trigger block. Additionally, four gate signals (see Figure 23) can be used to suppress trigger during configurable time frames.

Gating Trigger Events

Triggers can be fed into the gating_blocks as outlined in Gating Blocks and Figure 23.

In return, the gating_blocks can be used to block writing data to the FIFO. That way, only zero-suppressed data occurring when the selected gate is active is transmitted. This procedure reduces PCIe bus load even further.

Which gating_block is used to block a particular trigger_block is configured with ndigo6g12_trigger_block::gates.