TM
Block Preview

Introduction

The X2751 List block (also called DPP - Digital Pulse Processing) allows transferring event data in list mode from the board to the PC using the CAEN FELib library endpoint.

Each event can contain:

  • Parameters: Energy, PSD, timestamp, flags, and custom data
  • Waveforms: Up to 512 samples of digitized waveform data (optional)

Important: The block layout changes based on the selected properties. Read this documentation completely to understand all configuration options.

Time multiplexing: the board has 16 channels sampling at 1 GS/s, and that is why the waveform input WAVE_0 is a time-multiplexed 16-bit port with a TM factor of 8 - it carries 8 samples = 128 bits per clock cycle.

At a glance:

Board channels 16 at 1 GS/s
Waveform input one WAVE_0 pad, TM factor 8
Bits per clock 128
FIFO Channel range 0-15
Properties 5: FIFO Channel, Max Waveform Len, Packet mode, First word mode, Commit mode

Pin Description

SE Input 1 bit BIT
Special Event flag. Latched on TRIGGER transition. Use with INFO field to tag special event formats. Multi-Words mode only.
INFO Input 7 bit BIT VECTOR
Info field for arbitrary data. Useful with SE flag to identify custom event types. Multi-Words mode only.
ENERGY Input 16 bit BIT VECTOR
Energy value input. Typical field for Pulse Height Analysis or Charge-to-Digital results. Returned by CAEN FELib ENERGY endpoint field. Predefined fields mode.
PSD Input 16 bit BIT VECTOR
Pulse Shape Discriminator output. Returned by CAEN FELib PSD endpoint field. Predefined fields mode, Multi-Words only.
FINE Input 10 bit BIT VECTOR
Fine timestamp for sub-clock resolution. Predefined fields mode, Multi-Words only.
FLAG_A Input 8 bit BIT VECTOR
User-defined flag A. Returned by CAEN FELib FLAG_A endpoint field. Predefined fields mode.
FLAG_B Input 12 bit BIT VECTOR
User-defined flag B. Returned by CAEN FELib FLAG_B endpoint field. Predefined fields mode, Multi-Words only.
WORD2 Input 63 bit BIT VECTOR
WORD3 Input 63 bit BIT VECTOR
WAVE_ENABLE Input 1 bit BIT

Enable waveform capture for the current event.

  • HIGH: Include waveform in event
  • LOW: Omit the waveform, keep the parameters
  • Unconnected: forced to ‘1’, waveform always included Multi-Words mode only.
WAVE_0 Input 16 (TM) bit TM
Waveform data input, drawn on the symbol as WAVE0. Time-multiplexed, TM factor 8: the 16-bit port carries 8 consecutive samples, 128 bits, per clock cycle. There is exactly one waveform pad on this block and it is not configurable. Unconnected it is forced to 0. Multi-Words mode only.
WAVE_CE Input 1 bit BIT

Waveform Clock Enable for decimation.

  • HIGH: Capture the current 128-bit word
  • LOW: Skip the current 128-bit word
  • Unconnected: Capture all samples Multi-Words mode only.
TIMESTAMP Input 48 bit BIT VECTOR
48-bit timestamp captured on TRIGGER. Provides event timing information.
TRIGGER Input 1 bit BIT

Event trigger input. L→H transition starts event capture:

  • Latches parameter inputs
  • Begins waveform acquisition
  • Event not transferred until COMMIT (or AUTO mode)
LATCH Input 1 bit BIT
Parameter capture signal. Captures input data before TRIGGER if connected. Parameters captured on TRIGGER if unconnected. Driving LATCH after TRIGGER has no effect.
REJECT_ALL Input 1 bit BIT
Reject entire event (parameters + waveform). Sampled on COMMIT signal. Hold stable when COMMIT goes high to discard event.
REJECT_WAVE Input 1 bit BIT
Reject waveform only (keep parameters). Sampled on COMMIT signal. Useful for saving bandwidth when waveform not needed.
COMMIT Input 1 bit BIT
Flush event to readout FIFO. L→H transition commits the event to CAEN FELib. Behavior depends on Commit Mode property. Can be left unconnected in AUTO mode.
RUN Input 1 bit BIT

Global acquisition enable.

  • HIGH: Events are accepted
  • LOW: Events are ignored
  • Unconnected: Always enabled
FULL Output 1 bit BIT
Channel FIFO full indicator. HIGH when channel cannot accept new events. Events committed while FULL are rejected.
FULL_WAVE Output 1 bit BIT
Waveform buffer full indicator. HIGH when no space for new waveform samples. Waveforms may be truncated if FULL_WAVE active.
FULL_DATA Output 1 bit BIT
Parameter buffer full indicator. HIGH when parameter queue is full. Events committed while FULL_DATA are rejected.
BUSY Output 1 bit BIT
Processing busy indicator. HIGH when block is processing an event. New triggers are not accepted while BUSY.
WORD1/2/3 Input 62-63 bit

User-defined data words for custom event format.

  • WORD1: 62 bits, User defined word mode only
  • WORD2: 63 bits
  • WORD3: 63 bits WORD2 and WORD3 are present in both first-word modes.

Properties

Property window

FIFO Channel endpoint

Readout channel FIFO

Default: 0

Options: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Max Waveform Len wave_length

Maximum number of 64 bit waveform samples length

Default: 128

Packet mode pk_mode

Select between single word packet and multi word packet (only multi-words packed support waveforms)

Default: Multi-Words

Options: Multi-Words Single-Word

First word mode w1_mode

Organization of the first word fields of the packet

Default: Predefined fields

Options: Predefined fields User defined word

Commit mode commit_mode

Select between AUTO (commit after wave), MANUAL (commit signal must be triggered after the end of the wave), DELAYED (Latch commit data and send after wave), PROMPT (commit immediately on commit signal)

Default: AUTO

Options: AUTO MANUAL DELAYED PROMPT

FIFO Channel FIFO Channel
Readout channel endpoint (0-15), one per board channel. Each channel has independent FIFO and endpoint. Cannot instantiate more than one block per channel. Default: 0.
Max Waveform Len Max Waveform Len
Maximum waveform length, counted in readout words of the channel waveform stream (128 bits, i.e. 8 samples per word). Range: 0 to 512. Default: 128.
Packet mode Packet mode

Event packet format.

  • Multi-Words: Full event with parameters and waveforms
  • Single-Word: Compact format (energy + timestamp only) Default: Multi-Words.
First word mode First word mode

Organization of first parameter word.

  • Predefined fields: CAEN-compatible layout (ENERGY, PSD, FLAGS)
  • User defined word: Custom 62-bit data Default: Predefined fields. Multi-Words mode only.
Commit mode Commit mode

Event commit behavior.

  • AUTO: Commit after waveform length reached
  • MANUAL: Wait for explicit COMMIT signal
  • DELAYED: Latch reject flags, commit after wave
  • PROMPT: Commit immediately on COMMIT signal Default: AUTO.

Usage

Event Structure

Events consist of parameters (mandatory) and waveforms (optional):

  ┌────────────────────────────────────────────┐
│                 EVENT                       │
├────────────────────────────────────────────┤
│  Word 1: SE | INFO | ENERGY | PSD | FLAGS  │  ← Parameters
│  Word 2: User data (optional)              │
│  Word 3: User data (optional)              │
├────────────────────────────────────────────┤
│  Waveform samples (0-512)                  │  ← Optional
└────────────────────────────────────────────┘
  

Packet Modes

Multi-Words Mode

Multi-Words Mode

Full event packet with parameters and optional waveforms. Supports:

  • Multiple parameter words
  • Waveform data up to 512 samples
  • Flexible data organization

Single-Word Mode

Single-Word Mode

Compact single-word event for high-rate applications:

  • Only ENERGY, FLAG_A, and TIMESTAMP
  • No waveform support
  • Optimized readout throughput

First Word Organization

When using Multi-Words mode, you can choose between:

Predefined Fields (CAEN Compatible)

Standard CAEN FELib-compatible bit layout:

Field Size Description
SE 1 bit Special Event flag
INFO 7 bits Info field
ENERGY 16 bits Energy value (PHA/QDC)
PSD 16 bits Pulse Shape Discriminator
FINE 10 bits Fine timestamp
FLAG_A 8 bits User flag A
FLAG_B 12 bits User flag B

User Defined Word

User Defined Word

Complete control over the first word (62 bits):

  • WORD1: 62-bit arbitrary data
  • WORD2: 63-bit arbitrary data
  • WORD3: 63-bit arbitrary data

Waveform Input

This block has one waveform input, WAVE_0, and it is not configurable: it is a 16-bit time-multiplexed port with TM factor 8, i.e. 128 bits per clock cycle. Whatever drives it must be a TM block of the same factor. There is no property that changes the number or the width of the waveform pads.

WAVE_ENABLE decides per event whether the waveform is appended, and WAVE_CE decides per clock cycle whether the current 128-bit word is taken. Both default to ‘1’ when left unconnected, so a block with neither connected records the waveform of every event at full rate.


Commit Modes

The commit signal controls when events are flushed to the readout FIFO:

Mode Description Use Case
AUTO Commit after waveform completes Simple applications
MANUAL Assert COMMIT after wave ends Custom timing control
DELAYED Latch reject flags, send after wave Pile-up rejection
PROMPT Commit immediately on signal Partial waveforms

AUTO mode: Simplest - just connect TRIGGER, leave COMMIT unconnected.

MANUAL/DELAYED/PROMPT modes: Provide control over event rejection and timing.


Event Timing Diagram

 

Sequence:

  1. TRIGGER L→H starts event capture
  2. LATCH (optional) captures parameters before trigger
  3. ENERGY and other parameters latched
  4. WAVE_0 samples captured sequentially, 8 per clock
  5. COMMIT L→H flushes event to FIFO
  6. BUSY goes low when ready for next event

Reject Signals

Control event acceptance between TRIGGER and COMMIT:

Signal Effect
REJECT_ALL Discard entire event (parameters + waveform)
REJECT_WAVE Keep parameters, discard waveform only

Use cases:

  • Pile-up rejection
  • Pulse shape discrimination filtering
  • Coincidence/anti-coincidence logic

Status Outputs

Output Description
FULL Channel FIFO full - new events will be rejected
FULL_WAVE Waveform buffer full - waveforms will be truncated
FULL_DATA Parameter buffer full - events will be rejected
BUSY New triggers not accepted (processing current event)

Best practice: Monitor FULL signals and gate triggers when buffers are full.


Channel Assignment

The FIFO Channel property (0-15) selects the readout endpoint, one per board channel. Each channel is independent:

  • One List block per channel
  • Channels have independent FIFOs
  • Software reads each channel endpoint separately

Note: The channel number does NOT automatically correspond to physical input channel. You must manually connect the correct analog input to each List block.


Typical DPP Processing Chain

  ┌─────────────┐     ┌──────────────┐     ┌──────────────┐
│    X2751    │     │   Digital    │     │    X2751     │
│  Digitizer  │────►│  Processing  │────►│     List     │
│   (ADC)     │     │   Chain      │     │    (DPP)     │
└─────────────┘     └──────────────┘     └──────────────┘
                          │
                          ▼
                    ┌──────────────┐
                    │ - Trigger    │
                    │ - Energy     │
                    │ - PSD        │
                    │ - Timestamp  │
                    └──────────────┘
  

Resources & Timing

  • Latency: 1-2 clock cycles for trigger/commit detection

  • Throughput: Up to 1 event per clock cycle (depends on waveform length)

  • Maximum 512 waveform words per event
  • 16 selectable channel endpoints, each with its own FIFO
  • Waveform input is time-multiplexed with TM factor 8 (128 bits per clock, 1 GS/s)
  • Data transferred via CAEN FELib or SciCompiler SDK

Supported Boards

  • X2751