FELIX at Nikhef readme¶
Programming a bitfile into a FELIX (FLX712) card.¶
The computers in the Nikhef Atlas playground can be accessed through the SSH gateway login.nikhef.nl, or by setting up a VPN with institute access, see https://wiki.nikhef.nl/ct/EduVPN
A list of computers and the cards in them can be found on the Atlas setup in H148 wiki page.
First you need a graphical session to any Linux computer in the Nikhef network where you launch Vivado. This can for instance be tarfa.nikhef.nl. For the graphical session you can use ssh -X tarfa.nikhef.nl, but the GUI response of Vivado will be slow. More convenient options to use are x2goclient (Recommended by Frans), VNC (Recommended by Jos) or FastX (Recommended by Nikhef CT).
Once logged in to tarfa, Vivado can be launched using the following commands:
source /eda/fpga/xilinx/Vivado/2020.1/settings64.sh vivado
In Vivado clock on hardware_manager => Open Target => Open New Target.
Now choose "Connect to remote server" and select rother as the hardware server. Rother is a (NUC) computer that connects to all the USB/JTAG cables to program the FPGAs.
Choose the hardware target that matches the card / server you want to use, see Atlas setup in H148
Now you can select "Program device" and then select the .bit file that you want to flash into the FPGA, the debug probes file (.ltx) is optional and only available if the firmware was built with internal ILA/Chipscope to look into details of internal signals of the FPGA.
Finally the PCIe device must be recognized, for this to happen the computer holding the card must be rebooted:
sudo shutdown -r now
Phase2 (register-map 5.0) compatible FELIX software¶
If you don't have an SSH key on the computer yet, create one using
Then copy the contents of the file ~/.ssh/id_rsa.pub into SSH keys under your gitlab account settings
Clone the felix and software repository¶
git clone ssh://firstname.lastname@example.org:7999/atlas-tdaq-felix/felix cd felix/ ./clone_all.sh ssh cd software/ ./clone_all.sh ssh
cd elinkconfig/ git checkout rm-5.0 cd ../felix-config/ git checkout rm-5.0 cd ../felixcore/ git checkout rm-5.0 cd ../felix-star/ git checkout rm-5.0 cd ../felixtest/ git checkout rm-5.0 cd ../flxcard/ git checkout rm-5.0 cd ../ftools/ git checkout rm-5.0 cd ../regmap/ git checkout rm-5.0 cd ..
source cmake_tdaq/bin/setup.sh cmake_config cd x86_64-centos7-gcc8-opt/ make
Initializing the FLX712 card¶
cd felix/software/ source cmake_tdaq/bin/setup.sh cd x86_64-centos7-gcc8-opt/ export PATH=$PATH:$(pwd)/flxcard:$(pwd)/ftools:$(pwd)/elinkconfig:$(pwd)/felig-tools:$(pwd)/felix-star elinkconfig flx-init