(home)
(Full Firmware Plan)

External Triggers and Vetos (ETV)

(Firmware coder: TBD)

Structure

The External Trigger and Veto (ETV) module is independent from the main detector data path in the L1 trigger. It takes in input that originates from the SDU or the DCRC's external LEMO connector and produces a special-purpose set of trigger primitives to be written to the FIFO. This module also receives trigger-veto signals from the external connectors, which allow external information to be used to temporarily block all writes to the trigger FIFO. This is expected to be used during brief periods of high noise to keep the trigger FIFO from getting filled with noise-only triggers.

Data Inputs

The inputs are derived from the external connectors on the DCRC, which takes in signals from the signal distribution unit (SDU). The input can be one of the following three:

  • An external trigger input
  • A start veto input
  • A stop veto input

Note that the data format is not yet specified. Input is needed from Sten about the format and meaning of the SDU signals and how they can be used in the FPGA.

The input signals will be something simple, along the lines of a bit that is high on a rising clock edge, plus a couple of bits to indicate the type of input (external trigger, start veto, or stop veto). The final specification of the inputs will not be available until Sten has had a chance to get the design of the SDU at least closer to finished.

Configuration and Control Inputs
  • 100 MHz clock input
  • 1 reset input
  • Current timestamp: 32 bits
    (This is a counter that is incremented by the DCRC every time a phonon ADC sample is stored into memory. It is not a part of the trigger firmware, and is instead computed by the main DCRC firmware and provided to the trigger firmware as well as to other parts of the main DCRC firmware. It is set to zero at the beginning of a series, and so it records the number of phonon samples recorded since the series start. It will roll over to zero about every 2 hours, which is more than long enough to avoid any ambiguity for the MIDAS front-end. The same counter is used by the Random Trigger and Peak Search modules to provide trigger timestamps.)
Output There is one streaming output, which goes to the L1 FIFO module
  • The output is a set of trigger primitives and comprises the following information:
    • Timestamp of the trigger or veto
    • A special code used to indicate the nature and source of the external trigger or veto
    • The trigger word, which for external triggers and vetos is all zeros
    • The trigger logic bits, which for external triggers and vetos is all ones
  • The output is an Avalon-ST format stream.
  • The output stream includes the following signals:
    • 72 data bits, broken down as follows, ordered from the most-significant bits to the least-significant bits:
      • 32 bits: timestamp
      • 16 bits: trigger/veto special code
      • 16 bits: all set to 0
      • 8 bits: all set to 1
    • 1 "valid" bit
  • Each output produced by this module (or by the Random Trigger and Trigger Logic modules) produces a single entry in the FIFO.
Functionality Brief functional description:

The ETV module takes in input received from the external trigger sources and, depending on the input, produces one of three words to send to the L1 FIFO module.

More detailed description (including data transfer information):

Step-by-step:

  1. Receive an input from the external connectors
  2. Check the input:
    • If an external trigger input is received, send the following 72 bits as an output
      • 32 bit timestamp: current timestamp
      • 16 bits: a code (3 or greater) that indicates the source of the external trigger
      • 16 bits: all 0
      • 8 bits: all 1
    • If a start veto input is received, send the following 72 bits as an output
      • 32 bit timestamp: current timestamp
      • 16 bits: 1 (code indicating veto start)
      • 16 bits: all 0
      • 8 bits: all 1
    • If an end veto input is received, send the following 72 bits as an output
      • 32 bit timestamp: current timestamp
      • 16 bits: 2 (code indicating veto stop)
      • 16 bits: all 0
      • 8 bits: all 1
  3. Return to step 1

Reset Signal:

When the reset signal is asserted,
  • Do nothing, ignoring all input. There is no internal state to reset.
When the reset signal is deasserted,
  • Go back to Step 1

Testing Plan

More detail is here.