YARR: Yet another Rapid Readout

What is YARR?

YARR is a readout system based around the concept of moving intelligence from the FPGA firmware into the host computer software. The role of the FPGA is the one of a reconfigurable I/O interface and not anymore the one of a hardware accelerator. YARR supports multiple types of FPGA platforms:

  • COTS PCIe FPGA cards: CERN SPEC, XpressK7, Trenz TEF1001, and Xilinx KC705
  • FELIX + NETIO
  • FELIX-STAR + NETIO-NEXT
  • ATLAS IBL BOC
  • Wuppertal's KU040
  • BDAQ Hardware

The currently supported readout chips are:

  • FE-I4B
  • FE65-P2
  • RD53A
  • ITkPixV1 (RD53B)
  • ITkPixV2 (RD53C)
  • ABC/HCC STAR

There is very preliminary support for Star chips (strips).

Support

Support for YARR can be found in the YARR Matter Most channel.

  • Future docs: https://yarr.web.cern.ch/yarr/devel/
  • Developer docs: https://yarr.web.cern.ch/doxygen/devel/
  • Coverage: https://yarr.web.cern.ch/yarr/devel/coverage/

Folder Structure

.
|-- configs : Config templates
|-- doc : Documentation
|-- src : Main software dir
    |-- kernel : Custom PCIe kernel driver
    |-- libBdaq : BDAQ hw driver
    |-- libBoc : ATLAS IBL BOC hw driver
    |-- libEmu : FE Emulator hw driver
    |-- libFe65p2 : FE65p2 implementation
    |-- libFei4 : FE-I4B implementation
    |-- libKU040 : KU040 hw driver
    |-- libNetioHW : FELIX driver
    |-- libFelixClient: FELIX driver for felix-star and NetIO-next
    |-- libRce : HSIO2 hw driver
    |-- libRd53a: RD53a implementation
    |-- libSpec : PCIe hw driver
    |-- libUtil : Suppert library
    |-- libYarr : YARR core libraries 
    |-- tools : Main executeables
    `-- util : Utility scrips and files
|-- plotting : Scripts to interface with extenral libraries (e.g. ROOT), primarily to produce plots
`-- scripts : bash scripts for setup or automation