Hands-on: DAQ Firmware Design with the colibri VHDL library

Europe/Zurich
2/R-030 (CERN)

2/R-030

CERN

30
Show room on map
Mitja Vodnik (CERN)
Description

In this tutorial, you will design and test a simple DAQ firmware using colibri VHDL components.

Content

This tutorial will guide you through the design of a simple data acquisition firmware using colibri components.

You will:

  • design your own block implementing a Finite State Machine (FSM) using colibri templates and guidelines.
  • learn how to add formal verification to your components using the open source toolchains.
  • compose your top-level design using ready-made verified components from the colibri library.
  • design a constrained random testbench for the top-level to complete the validation of the design.

 

Prerequisites

The tutorial is hands-on: it is best to prepare your system installing the following prerequisites:

Option 1: docker (simplest)

We have prepared a all-in-one docker image that you can use in this tutorial. All the tools are already available and configured.

docker pull gitlab-registry.cern.ch/colibri/hdl_containers/colibri_de:latest

Note: podman can be used instead of docker

Option 2: install from sources

If you want to install the tools yourself, this is the list:

Recommended tools (optional)

Colibri usage will be demonstrated in VS Code using the following two plugins:

  • surfer for waveform viewing
  • TerosHDL for VHDL linting, automatic formatting and other quick actions

Additionally two Python plugins are recommended:

  • vsg for automatic code formatting
  • jinja2 for VHDL template generation

We recommend using the same tools to follow the tutorial, except if you have already established different coding preferences.

Materials

We have prepared some source code which will help us fit our hands-on tutorial in the 3 hours of allocated time.

Starting point repository

A starting point to follow the tutorial can be found at the following link:

https://crnbox.cern.ch/remote.php/dav/public-files/ghWk0Dg43I3Yvu0/fdf26_colibri_tutorial.zip

It is a zip archive containing files that we will use, but will not be the focus of our tutorial.

Solved repository

The finished tutorial code can be found on GitLab: readout_design · master · colibri / tutorials · GitLab

It can be used as a reference during the live demonstration.

Zoom Meeting ID
67174948131
Host
Mitja Vodnik
Passcode
25309938
Useful links
Join via phone
Zoom URL
The agenda of this meeting is empty