# Dynamic Derandomizing Buffer: A Portable and Scalable Solution for Time-Ordered Packet Aggregation

- Institution: CERN
- Speaker: Mitja Vodnik
- Year: 2026
- Language: English
- Source: [CERN](https://videos.cern.ch/record/3025781)
- Licence: [CERN](https://copyright.web.cern)
- Who can watch: Teens profiles and older (sources give no ratings; placed by Invisible Network from the source's own words)

The Dynamic Derandomizing Buffer is a firmware design for joining time-stamped packets form multiple incoming data streams with randomly varying time-skews into a single time-ordered output stream. It is developed at CERN primarily to handle the output from the novel FastRICH ASIC (the LHCb RICH detector readout chip for Runs 4 and 5), but intentionally made agnostic to this use-case so it can be used in any similar real-time stream processing scenario. Written in pure VHDL, it is also fully portable: it was successfully built for both Intel and AMD devices.

This presentation covers a scalable and configurable tree-based aggregation architecture, portable BRAM-based buffering components, and a special time-stamp windowing algorithm which guides the time-ordering process. We also share our experience in applying test-driven development approach (using formal verification and self-testing UVVM-based simulation) to a complex FPGA design.

00:00:00 Slide 1

00:00:48 Slide 2

00:01:44 Slide 3

00:02:48 Slide 4

00:04:02 Slide 5

00:04:16 Slide 6

00:05:20 Slide 7

00:06:25 Slide 8

00:07:40 Slide 9

00:08:57 Slide 10

00:10:38 Slide 11

00:11:43 Slide 12

00:13:41 Slide 13

00:14:53 Slide 14

00:15:42 Slide 15

00:16:13 Slide 16

00:17:20 Slide 17

00:18:06 Slide 18

00:18:17 Slide 19

00:18:44 Slide 20

00:19:29 Slide 21

00:20:20 Slide 22

00:21:04 Slide 23

00:22:33 Slide 24

00:23:26 Slide 25

00:23:45 Slide 26

00:26:25 Slide 27

00:28:42 Slide 28

00:29:05 Slide 29

00:30:10 Slide 30

## Lectures

1. [Dynamic Derandomizing Buffer: A Portable and Scalable Solution for Time-Ordered Packet Aggregation](https://invisiblenetwork.ai/learn/cern/3025781/8e4e8ae3767b), 31 min (CERN's player)
