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.
Overview
The built firmware will sit in the PL (FPGA) part of a Xilinx SoC.
Details of the processing blocs are given in the next figure.
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