dune daq data format inside fpga
play

DUNE DAQ Data format inside FPGA David Cussans 14 th June 2018 - PowerPoint PPT Presentation

DUNE DAQ Data format inside FPGA David Cussans 14 th June 2018 Introduction Format for data inside FPGAs Part of definition of processing blocks. Want to run logic ~ 100MHz 400MHz Reuse gates multiple times in single


  1. DUNE DAQ Data format inside FPGA David Cussans 14 th June 2018

  2. Introduction • Format for data inside FPGAs • Part of definition of processing blocks. • Want to run logic ~ 100MHz – 400MHz • Reuse gates multiple times in single 2MHz ADC sample time. • Aim to be able to stream data ( pipelined logic ) where possible • Rather than read in block, process, transmit • à Probably (?) implies time-wise ordered data ( sample 1,2,3,4…) , rather than channel-wise data ( channel 1,2,3,…. ) • … but do want some block structure, for transmission to event builder and , e.g. ease of recovery from lost data. David Cussans | DAQ Hardware meeting, 14 th June 18 2

  3. Hardware Layout • Look at: • Combiner/splitter à compression interface • Compression à Buffer controller interface Diagram – Babak Abi To Back- end Trigger Command Data Selection David Cussans | DAQ Hardware meeting, 14 th June 18

  4. Assumed parameters • 4 FPGAs per APA • à 2560 / 4 = 640 wires per APA • 2MSample/s , 12-bits • Aim for < 400MHz clock for logic processing • Try ~ 320MHz processing clock • à Width of “data bus” = 12 x f sample x N chan / f clock = 48 • Assume Fibonacci (or some other) encoding(compression) of sample differences. • N.B. This is a “straw person” aimed to provoke comment, not the final word…. David Cussans | DAQ Hardware meeting, 14 th June 18 4

  5. Conventions • S ij = 12-bit Single Phase TPC sample from channel “i” at clock cycle “j” within a block of data • For compressed data: • Ped i = sample value for channel “i” at start of block of data • D ij = encoded data for channel “i” , clock cycle “j” • Possibly not DUNE official nomenclature Channel Number ➡ ️ S 1,1 S 2,1 S 3,1 S 4,1 … … … S i,1 S 1,2 S 2,2 S 3,2 S 4,2 … … … S i,2 S 1,3 S 2,3 S 3,3 S 4,3 … … … S i,3 Sample Number ⬇ ️ . . . . . . . . . . . . . . . . . . . . . . . . S 1,j S 2,j S 3,j S 4,j … … … S i,j David Cussans | DAQ Hardware meeting, 14 th June 18 5

  6. Raw Data Format David Cussans | DAQ Hardware meeting, 14 th June 18 6

  7. Compressed ← 48 bits → Timestamp Block #N Data Format Additional headers Ped 1 Ped 2 Ped 3 Ped 4 ← 160 clock cycles → Pedestals for block Ped 5 Ped 6 Ped 7 Ped 8 . . . Ped 637 Ped 638 Ped 639 Ped 640 Compressed D1,1, D2,1, .. ← variable → deltas, #1 . . .. , D639,1, D640,1, padding checksum Compressed D1,2, D2,2, .. deltas, #2 . . .. , D639,2, D640,2, padding checksum . . ……… . . Compressed D1,N, D2,N, .. deltas, #N . . .. , D639,N, D640,N, padding checksum Additional checksum , Nsamples David Cussans | DAQ Hardware meeting, 14 th June 18 7

  8. Conclusion • Need to define interfaces as part of task of defining processing blocks. • For internal data paths, define a format optimized for FPGAs • Allow for maximum reuse of logic on multiple clock cycles • Minimize the amount of storage needed for intermediate results. • There will also be additional control lines • E.g. Data-valid strobes • Run logic ~ 350MHz to allow for headers • Don’t need an exact multiple of sample frequency – have strobes. David Cussans | DAQ Hardware meeting, 14 th June 18 8

Recommend


More recommend