Xilinx - hpaluch/hpaluch.github.io GitHub Wiki

Xilinx notes

Currently discussed 2 boards:

AC701 board (Artix-7)

AC701 board (Artix-7 board with PCIe, DDDR RAM, etc) is available on:

Vivado 2015.1 problems:

  • Vivado 2015.1 is last version for which there are sample projects available from above URL (you can use even latest Vivado 2024.1 Standard with AC701, but these examples are not guaranteed to work there)
  • it requires CentOS 7.0, used https://vault.centos.org/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-Everything.iso
  • but when you run it it crashes with SIGSEGV
  • after 3 days I found that it is crashing inside libxcb-glx.so.0 (OpenGL extension to XCB protocol library). libxcb is so called "modernized lightweight X11 client library" from https://xcb.freedesktop.org/ - so now it is clear why it crashes.
  • I resolved the problem in 2 steps:
  • created fake invalid libxcb-glx.so.0 with (so dlopen will use it and stops looking in other places):
    mkdir -p ~/fake-lib
    touch ~/fake-lib/libxcb-glx.so.0
    
  • created wrapper script ~/bin/vivado-wrapper with contents:
    #!/bin/bash
    set -xeuo pipefail
    export LD_LIBRARY_PATH=$HOME/fake-lib
    /opt/Xilinx/Vivado/2015.1/bin/vivado "$@"
    exit 0
    
  • this resolved my problem
  • WARNING! Do not remove or obscure libxcb-glx.so.0! GNOME and all its applications depends on it! Doing that will completely screw your GUI! And GNOME is only GUI available on plain CentOS (without EPEL).

Vivado 2024.1 problems:

  • also trying Vivado 2024.1 with AC701
  • I used recommended Alma Linux 8.7 (see ug973-vivado-release-notes-install-license-en-us-2024.1.pdf)
  • but on startup there was error:
    $ /opt/Xilinx/Vivado/2024.1/bin/vivado 
    
    application-specific initialization failed: \
      couldn't load file "librdi_commontasks.so": libtinfo.so.5: cannot open shared object file: No such file or directory
    
  • when I tried dnf provides libtinfo.so.5 it found 32-bit version only, so I have to:
    curl -fLO https://repo.almalinux.org/vault/8.7/BaseOS/x86_64/os/Packages/ncurses-compat-libs-6.1-9.20180224.el8.x86_64.rpm
    sudo rpm -ivh ncurses-compat-libs-6.1-9.20180224.el8.x86_64.rpm 
    
    • note: later I found it on mounted DVD at:
      /run/media/USERNAME/AlmaLinux-8-7-x86_64-dvd/BaseOS/Packages/ncurses-compat-libs-6.1-9.20180224.el8.x86_64.rpm
      
    • I don't know why dnf command did not show it...
  • it fixed my problem.
  • NOTE: I was unable to find installLibs.sh script (mentioned in docs) - not sure, what I'm doing wrong.

Basys 3 (Artix-7)

Just starting with Digilent Basys 3 board:

Found that 2 Digilent Basys3 projects have nice examples of:

Resources