Skip to content
Snippets Groups Projects
Select Git revision
  • e664d17e20b40d7b43076b2e6a62320f024fe74c
  • main default protected
  • en_ila
  • simproj
  • dev_GBE
  • dev
  • fix_timing
  • bugfix_timeout
  • fix_stoptocurrent
  • fix
  • dev-doc
  • 2.1.3
  • 2.2.1
  • 2.1.2
  • 2.2
  • 2.1.1
  • 2.1
  • 2.0
  • 1.1
  • 1.0.4
  • 1.0.3
  • 1.0.2
  • 1.0.1
  • 1.0.0
  • 0.7.0
  • 0.6.7
  • 0.6.6
  • 0.6.5
  • 0.6.4
  • 0.6.3
  • 0.6.2
31 results

cellnode_fpga

  • Clone with SSH
  • Clone with HTTPS
  • Romain Bronès's avatar
    BRONES Romain authored
    e664d17e
    History

    FOFB Node Documentation

    Description

    This FWK project is used to build the two configuration of FOFBNodes : CellNode and CentralNode. The target system is a DAMC-FMC2ZUP board with a FMC-4SFP+ equiped.

    The next figure gives a global idea of the Fofb Nodes integration to SOLEIL Fast Orbit Feedback. Beam Position Monitors (BPM) output the position data, and Power Supply Controller (PSC) drive the steering magnets to move the beam with the correction values.

    Topology

    Overview

    The built firmware will sit in the PL (FPGA) part of a Xilinx SoC.

    Platform

    Details of the processing blocs are given in the next figure.

    Detailed Application Blocs

    Modules used

    FMC2ZUP BSP (desy msk)

    BSP for the main board

    FMC4-SFP interface

    Simple interface layer

    DAQ (desy msk)

    DAQ used to record data and forward in on board DDR

    CCN Ethernet

    Communication CellNodes, transmit and receive ethernet frames from/to AXI-Stream

    CCN Packet

    Communication CellNodes, packeter and unpacketer for the frames

    COMBPM

    (CellNode only) Receive frames from BPMs, filter and put packets on a AXI-Stream

    COMCORR

    (CellNode only) Transmit frames to PSC

    CORR Matrix

    (CentralNode only) Compute correction from BPM position data

    DESY LIB (desy msk)

    Several basic components and interfaces

    Generation

    System requirements

    • Vivado version targeted : Vivado 2020.2. The TCL interpreter shall be accessible in the environment PATH. (Use the script settings64.sh provided by Xilinx)

    • Python3.8 shall be installed with venv

    Building firmware

    Checking out the source code

    git clone git@gitlab.synchrotron-soleil.fr:dg/fofb/cellnode_fpga.git prod_fofbnode
    cd prod_fofbnode/
    git submodule update --init --recursive

    Quick tour

    Taking a look in the checked out files, we can see the different modules used in the src directory. FWK will use information set in the different .cfg and .tcl files.

    ├── cfg
    │   ├── cellnode.cfg
    │   ├── centralnode.cfg
    │   └── default.cfg
    ├── doc
    ├── fwk
    ├── Makefile
    ├── README.adoc
    ├── src
    │   ├── app_fofbnode
    │   ├── bsp_msk
    │   ├── ccn_packet
    │   ├── combpm
    │   ├── comcellnode_ethernet
    │   ├── comcorr
    │   ├── corr_matrix
    │   ├── daq
    │   ├── fmc_4sfp
    │   ├── lib
    │   └── pscgen
    └── tcl
        └── project.tcl

    Building

    The build process is handled by FWK makefile.

    Install dependency in a local environment (fwk). This is required only once.

    make env

    Create the project then build it, for both configurations (default is CellNode)

    make project && make project cfg=centralnode
    make build && make build cfg=centralnode

    Getting output files

    All output files are located in the out directory. .xsa and .mapt files are then to be forwarded to the YOCTO build system: https://gitlab.synchrotron-soleil.fr/dg/fofb/fofb-yocto