| Input Name | Bit Width | Number of Inputs | Input of | Description |
| Phonon Inputs fromADC | 14 bits/channel | 12 channels | Downsample Filter | The 12 phonon inputs are digitized in an ADC on the DCRC at a rate of 625 kHz. We note that this is done on 3 ADC chips with 4 ADC's per chip. |
| Charge Inputs fromADC | 16 bits/channels | 4 channels | Downsample Filter | The 4 phonon inputs are digitized in an ADC on the DCRC at a rate of 2.5 MHz. We note that this is done on 2 ADC chips with 2 ADC's per chip. |
| Input Name | Bit Width | Number of Registers | Input of which module(s) | Description |
| Linear Combination Coefficients | 8 bits/channel | 16 channels/submodule x 4 submodules | Linear Combination |
These are the coefficients used in the LC module to compute the linear combination of the set of phonon and charge inputs. They have two distinct uses. The first use is to select only a subset of the 16 input channels for use in one of the trigger waveforms. For example, the coefficients for all side 1 phonon channels might be set to 1 while all other coefficients are set to 0, in order to create a side 1 only trigger. The second use is to include channel-relative calibrations. For example, if one phonon channel is known to have a response 20% larger than the other phonon channels, then the corresponding coefficient might be set 20% lower than the other phonon coefficients. The default is to set the charge coefficients to 0 and the phonon coefficients to 1. This produces a phonon-only trigger that uses both sides of the detector. |
| Finite Impulse Response Coefficients | 16 bits/coefficient | 1024 coefficients/submodule x 4 submodules (Note: This is implemented as only three addressable registers: one address register, one module-select register, and one data port register) | Finite Impulse Response | These coefficients define the response of the Finite Impulse Response Filter used in the L1 trigger. |
| Activation Thresholds | 16 bits/threshold | 1 threshold/submodule x 8 submodules | Threshold Logic | The input trigger waveform values are compared to these thresholds to make the discriminator decisions, and set the "threshold logic bits" (which is 1 when the trigger waveform goes above this threshold). The discriminator decision and threshold logic bits are used in the Peak Search module as part of the peak search window and trigger primitive determination. |
| Deactivation Thresholds | 16 bits/threshold | 1 threshold/submodule x 8 submodules | Threshold Logic | The input trigger waveform values are compared to these thresholds to make the discriminator decisions, and set the "threshold logic bits" (which is 0 when the trigger waveform goes below this threshold). The discriminator decision and threshold logic bits are used in the Peak Search module as part of the peak search window and trigger primitive determination. |
| Threshold Logic Selectors | 2 bits/selector | 1 selector/submodule x 8 submodules | Threshold Logic and Peak Search |
These selectors are used to choose which of the 4 trigger waveform channels (FIR outputs) will be compared to the corresponding thresholds. The Peak Search module looks at the Threshold Logic Selectors to find which of the threshold logic bits to use to define the peak search window. |
| Max window length $t_\text{max}$ | 16 bits/register | 1 register/submodule x 4 submodules | Peak Search | The length of the measured peak search window is compared to this length. If it is larger than this length, it identifies the pulse as being a saturated pulse. |
| Saturated-pulse timestamp offset $\Delta t_\text{sat}$ | 16 bits/register | 1 register/submodule x 4 submodules | Peak Search | For pulses identified as saturated pulses, this offset is used in addition to the peak search window start to calculate the reported peak timestamp. |
| Require Masks | 16 bits/mask | 1 mask/output trigger bit x 8 output trigger bits | Trigger Logic | These masks are used to check each incoming trigger word to tell which bits of the trigger word are required to be 1. |
| Veto Masks | 16 bits/mask | 1 mask/output trigger bit x 8 output trigger bits | Trigger Logic | These masks are used to check each incoming trigger word to tell which bits of the trigger word are required to be 0. |
| Trigger Logic Selectors | 2 bits/selector | 1 selector/output trigger bit x 8 output trigger bits | Trigger Logic | These two bits are used to choose which Peak Search module results will be used for each of the 8 trigger bits produced by the Trigger Logic module (described in the TrL page). |
| Prescale Probabilities | 16 bits/probability | 1 probability/output trigger bit x 8 output trigger bits | Trigger Logic | Sets the probability that triggers will be rejected probabilistically. Setting this to 0xFFFF will mean no triggers get rejected. Setting this to 0x0000 will mean triggers are only accepted at a rate of 1 out of every 65536. That is, the accept rate is this register's value plus one, divided by 65536. |
| Enable Bits | 1 bit each | 1 enable bit/output trigger bit x 8 output trigger bits | Trigger Logic | This bit is used to turn individual bits (8 bits total) in the Trigger Logic module's output on or off. Setting this register to 1 allows the Trigger Logic module to set the corresponding bit normally. Setting this register to 0 forces the corresponding bit in the trigger word output to always be 0. |
| Random Trigger Threshold | 32 bits | 1 threshold | Random Trigger | A random trigger is inserted into the L1 FIFO when a random number, generated in the module, goes above this threshold. |
| Trigger FIFO pop | 0 bits | 1 pop | L1 FIFO |
The trigger FIFO "pops" or discards the current head and moves on the next entry when any value is written to the address of this register. Note that the value written to this address is irrelevant and ignored, which is why it is marked as "0 bits". Only the fact that a write request occurred, and no actual written data, is passed to the L1 FIFO module. This makes it a control input but not a configuration input. |
| Veto FIFO pop | 0 bits | 1 pop | L1 FIFO |
The veto FIFO "pops" or discards the current head and moves on the next entry when any value is written to the address of this register. As in the Trigger FIFO pop, note that the value written to this address is irrelevant and ignored, which is why it is marked as "0 bits". Only the fact that a write request occurred, and no actual written data, is passed to the L1 FIFO module. This makes it a control input but not a configuration input. |
| Input Name | Bit Width | Number of Inputs | Input of | Description |
| Current Timestamp | 32 bits/timestamp | Not an addressable register -- these 32 bits are a counter internal to the FPGA which the trigger firmware can use. | Peak Search, Random Trigger, External Triggers and Vetos and L1 FIFO |
At the start of a data-taking series, this counter is set to 0. Then, every time a phonon ADC sample is recorded (every 625 kHz), the counter is incremented by one. The Peak Search, Random Trigger and External Trigger and Veto modules use this counter to determine the timestamp that should be recorded into the L1 Trigger FIFO for each trigger. The L2 trigger will use this timestamp to decide which portions of the data to read out from the DCRC. The L1 FIFO module uses this counter to determine the timestamp that should be recorded into the veto FIFO, and help to track the live-time and dead-time. |
| External Trigger Input from SDU/LEMO1 | TBD bits/register | 1 register | External Triggers and Vetos | This input is used to make a trigger decision on the external source. |
| Start Veto Input from SDU/LEMO1 | TBD bits/register | 1 register | External Triggers and Vetos | The External Triggers and Veto module produces a special-purpose set of trigger primitives when it receives this input. The trigger primitives will be written to the L1 FIFO to temporarily block all writes to the L1 FIFO. This is expected to be used during brief periods of high noise to keep the L1 FIFO from creating deadtime during noise bursts. |
| Stop Veto Input from SDU/LEMO1 | TBD bits/register | 1 register | External Triggers and Vetos | The External Triggers and Veto module produces a special-purpose set of trigger primitives when it receives this input. The trigger primitives will be written to the L1 FIFO to stop blocking all writes to the L1 FIFO. This is expected to be used during brief periods of high noise to keep the L1 FIFO from creating deadtime during noise bursts. |
| Notes | 1 The description of this input need to be confirmed by Sten. |