X2740 List (DPP)
List-mode data acquisition block for X2740/X2745 boards. Transfers events with parameters and optional waveforms to the PC via CAEN FELib. Supports 64 independent channels with flexible waveform bus configuration.
Introduction
The X2740 List block (also called DPP - Digital Pulse Processing) allows transferring event data in list mode from the X2740/X2745 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.
At a glance:
| FIFO channels | 64 (endpoint 0-63) |
| Waveform input | configurable Wave bus: 1 x 64, 2 x 32, 4 x 16 or 1 x 16 bit |
| Input format | plain std_logic_vector pads, not time-multiplexed |
| Properties | 6: FIFO Channel, Max Waveform Len, Wave bus, Packet mode, First word mode, Commit mode |
Pin Description
Enable waveform capture for current event.
- HIGH: Include waveform in event
- LOW or unconnected: Always include waveform Multi-Words mode only.
Waveform Clock Enable for decimation.
- HIGH: Capture current sample
- LOW: Skip current sample
- Unconnected: Capture all samples Multi-Words mode only.
Event trigger input. L→H transition starts event capture:
- Latches parameter inputs
- Begins waveform acquisition
- Event not transferred until COMMIT (or AUTO mode)
Global acquisition enable.
- HIGH: Events are accepted
- LOW: Events are ignored
- Unconnected: Always enabled
User-defined data words for custom event format.
- WORD1: 62 bits
- WORD2: 63 bits
- WORD3: 63 bits User defined word mode only.
Properties
Readout channel FIFO
Default: 0
Options: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
Maximum number of 64 bit waveform samples length
Default: 128
Organization of the waveform bus (number of wave channels/bit)
Default: 1 x 16 bit
Options: 1 x 64 bit 2 x 32 bit 4 x 16 bit 1 x 16 bit
Select between single word packet and multi word packet (only multi-words packed support waveforms)
Default: Multi-Words
Options: Multi-Words Single-Word
Organization of the first word fields of the packet
Default: Predefined fields
Options: Predefined fields User defined word
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
Waveform input bus configuration.
- 1 x 64 bit: Single 64-bit input
- 2 x 32 bit: Two 32-bit inputs
- 4 x 16 bit: Four 16-bit inputs
- 1 x 16 bit: Single 16-bit input (4× longer waveforms) Default: 1 x 16 bit.
Event packet format.
- Multi-Words: Full event with parameters and waveforms
- Single-Word: Compact format (energy + timestamp only) Default: Multi-Words.
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.
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
Full event packet with parameters and optional waveforms. Supports:
- Multiple parameter words
- Waveform data up to 512 samples
- Flexible data organization
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
Complete control over the first word (62 bits):
- WORD1: 62-bit arbitrary data
- WORD2: 63-bit arbitrary data
- WORD3: 63-bit arbitrary data
Wave Bus Configuration
The waveform inputs are plain std_logic_vector pads (no time multiplexing). The Wave bus property chooses how many there are and how wide:
| Mode | Description | Pins Created |
|---|---|---|
| 1 x 64 bit | Single 64-bit waveform word | WAVE_64_0 (64-bit) |
| 2 x 32 bit | Two 32-bit waveform words | WAVE_32_0, WAVE_32_1 (32-bit each) |
| 4 x 16 bit | Four 16-bit waveform words | WAVE_16_0 to WAVE_16_3 (16-bit each) |
| 1 x 16 bit | Single 16-bit (4× longer waveform) | WAVE_16_0 (16-bit) |
Multiple waves: Use 2x32 or 4x16 to transfer multiple processing outputs simultaneously:
- Raw ADC signal
- Trigger filter output
- Energy filter output
- Baseline restorer output
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:
- TRIGGER L→H starts event capture
- LATCH (optional) captures parameters before trigger
- ENERGY and other parameters latched
- WAVE_0 samples captured sequentially
- COMMIT L→H flushes event to FIFO
- 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-63) selects the readout endpoint. Each channel is independent:
- One List block per channel
- Channels have independent FIFOs
- Software reads each channel endpoint separately
Note: there are 64 independent FIFO channels, so up to 64 List blocks can coexist in one design, one per endpoint.
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 samples per event
- 64 independent channels with separate FIFOs
- Configurable wave bus for flexible waveform input
- Data transferred via CAEN FELib or SciCompiler SDK
Supported Boards
- X2740
- X2745