Skip to content

Software

All bugs regarding the module_test_sw.

ImportError: Failed to load uHAL bindings.

Details: "libcactus_uhal_tests.so.2.8: cannot open shared object file: No such file or directory"

  • Remember to do source setup.sh if you get this error to get the uhal software to talk to the KCU. This is for having uhal already installed!

The RB doesn't connect

  1. Check fiber orientation, instructions

  2. Check power of the RB. The LED on the power dongle has to be on.

  3. Power cycle the RB.

  4. The RB has a few indicator LEDs. Check if the relevant status LEDs are on to get an idea which part of the configuration is failing, if the error message does not give helpful information.

Potential error messages:

  • TimeoutError: I2C transaction failed after 50 retries because of an issue in writing the register address, status=132
  • Runtime Error: DAQ link does not have a stable connection after 50 retries

No data in the FIFO

  1. Check that the internal trigger generator rate, and reset it The FIFO might always be completely full, which can cause problems. Check the occupancy, and set the trigger rate back to 0 (default).

The error message may look like this (ran from this script, less stable code but for referance: python3 test_module.py --configuration modulev1 --moduleid 103 --test_chip --threshold auto):

uhal UDP error in FIFO.is_full, trying again

Then, reset the FIFO. (You can get into interactive mode to easily get the tamalero objects, ex: ipython3 -i test_module.py -- --moduleid 110 --configuration modulev1 --test_data_stream )

# RUN A SCRIPT IN INTERACTIVE MODE TO ACCESS THESE OBJECTS EASILY
fifo.get_occupancy()
fifo.set_trigger_rate(0)
fifo.reset()

  1. Power-cycle the RB and module Have you tried turning it on and off again?

  2. Reprogram the KCU Sometimes the KCU seems to get stuck. Try to power cycle and/or reprogram the KCU board with the latest Firmware.

    # Download FW if you don't have it. Look at the Firmware tab to setup the get_firmware_zip function
    get_firmware_zip v3.2.3
    cd etl_test_fw-v3.2.3
    source program.sh
    # follow instructions, don't program the flash
    

  3. Check the FC align status It is possible that links are locked, but the ETROC does not receive valid fast commands. One way to check the status of the received fast commands on the ETROC is to look at the status registers of the peripheral block:

    etroc.print_perif_status()
    
    If the invalid FC count increases over time, there's an issue with the FC module, which can be reset with
    etroc.reset_modules()
    

  4. Reconfigure the ETROC: Especially when running a realistic module with multiple ETROCs a hard reset will reset all ETROCs on the same module. If not all the ETROCs get reconfigured afterwards issues will emerge. For the ETROC instance etroc in question run

    etroc.reset()
    etroc.default_config()
    

KCU and Firmware Setup

Bugs for setting up the KCU and the firmware.

ERROR: Vivado not found in path.

  • This means you just have to set Vivado to your path (inside the directory withe firmware in it!): by doing source /tools/Xilinx/Vivado_Lab/2021.1/settings64.sh (RECOMMENDED TO PUT IN BASHRC)

ERROR: Hardware not found error

  • First just double check all the usb plugs are in and the KCU is on
  • If still the same error when doing source program.sh then you can try some things:
    • Install the drivers for the USB, head to this directory inside of your vivado installaion ${vivado_install_dir}/data/xicom/cable_drivers/lin64/install_script/install_drivers/ and in your terminal type ./install_drivers
    • Check permissions on the USB ports, ls -l /dev/ttyUSB* you can add yourself to the group if you are not there, for example if there is a group called dialout then do sudo usermod -aG dialout <user> and you can find user by typing whoami into the terminal. Restart your computer to have all these go into effect

ERROR: [Labtools 27-2254] Booting from configuration memory device unsuccessful.

  • This is a known error, do not worry about it. If it was gotten from program.sh you chose the second prompt, you should put no on that one Full error:
    ERROR: [Labtools 27-2254] Booting from configuration memory device unsuccessful.
    boot_hw_device: Time (s): cpu = 00:00:00.12 ; elapsed = 00:03:01 . Memory (MB): peak = 2745.438 ; gain = 0.000 ; free physical = 55791 ; free virtual = 61185
    ERROR: [Common 17-39] 'boot_hw_device' failed due to earlier errors.
    
        while executing
    "boot_hw_device  [lindex [get_hw_devices $device] 0]"
        ("foreach" body line 18)
        invoked from within
    "foreach target $targets {
        puts " > Programming $target"
        get_hw_targets
        open_hw_target $target
        set device [dict get $devices $target]
     ..."
        (file "program.tcl" line 131)