From 626bcb32eabe22f47358f2a63c3af8acbcfb71c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Max=20K=C3=B6hler?= Date: Wed, 9 Sep 2026 11:11:03 +0200 Subject: [PATCH] ci: Upgrade to Vivado 2025.2 --- .ci/fpga/scripts/run_setup.sh | 36 +++++---------------------- .ci/fpga/templates/job-build-fpga.yml | 2 +- .ci/hwtools/root.py | 8 +++--- 3 files changed, 11 insertions(+), 35 deletions(-) diff --git a/.ci/fpga/scripts/run_setup.sh b/.ci/fpga/scripts/run_setup.sh index 4c912d2ab..1a72c6c3e 100644 --- a/.ci/fpga/scripts/run_setup.sh +++ b/.ci/fpga/scripts/run_setup.sh @@ -52,36 +52,12 @@ python $(dirname $BASH_SOURCE)/merge_modelsim_ini.py \ # Removing the temporary files rm -f modelsim.mpf compileFpgaLib.log -echo "---- Fetch Vivado patches ----" -export PATCHES_DIR=$BUILD_SOURCESDIRECTORY/patches -mkdir -p $PATCHES_DIR -pushd $PATCHES_DIR -# Fetch the AR76780 patch for Vivado -cp /opt/synced/Xilinx/patches/AR76780_Vivado_2021_1_preliminary_rev1.zip ./AR76780_Vivado_2021_1_preliminary_rev1.zip -unzip -q -o ./AR76780_Vivado_2021_1_preliminary_rev1.zip -d ./AR76780_Vivado_2021/ -rm -f AR76780_Vivado_2021_1_preliminary_rev1.zip -# Add the AR76780 patch for the simulation library -cp /opt/synced/modelsim/patches/fir_compiler_v7_2_76780.zip ./fir_compiler_v7_2_76780.zip -unzip -q -o ./fir_compiler_v7_2_76780.zip -d ./fir_compiler_v7_2_76780/ -rm -f ./fir_compiler_v7_2_76780.zip -popd - -echo "---- Apply the Vivado patches ----" -pushd $BUILD_SOURCESDIRECTORY -# Apply the patch to Vivado -export XILINX_PATH=$PATCHES_DIR/AR76780_Vivado_2021/vivado -# Add the FIR compiler simulation model to local modelsim.ini -# Delete all lines containing "fir_compiler_v7_2_76780" to avoid duplicates -sed -i -e '/fir_compiler_v7_2_76780/d' ./modelsim.ini -# Duplicate line containing "fir_compiler_v7_2_16" -sed -i -e '/fir_compiler_v7_2_16/p' ./modelsim.ini -# Replace the first "fir_compiler_v7_2_16" line with our new library -PATCHES_DIR_ESC=$(echo $PATCHES_DIR | sed 's_/_\\/_g') -sed -i -e "0,/fir_compiler_v7_2_16/s/^fir_compiler_v7_2_16.*\$/fir_compiler_v7_2_76780 = $PATCHES_DIR_ESC\/fir_compiler_v7_2_76780/" ./modelsim.ini +echo "---- Configure modelsim paths ----" # Tell our build tools to use this modelsim.ini for this session -export MODELSIM_INI=$(pwd)/modelsim.ini -export MSIM_VIV_COMPLIBDIR=$(pwd) -popd +export MODELSIM_INI=$BUILD_SOURCESDIRECTORY/modelsim.ini +export MSIM_VIV_COMPLIBDIR=$BUILD_SOURCESDIRECTORY echo "---- Run setupenv ----" -source $1/setupenv.sh --vivado-path $(dirname $XILINX_VIVADO) --modelsim-path $(dirname $MODELSIM) +# update XILINX_VIVADO to the parent directory +echo "Sourcing $1/setupenv.sh with Vivado path: $XILINX_VIVADO and Modelsim path: $(dirname $MODELSIM)" +source $1/setupenv.sh --vivado-path $XILINX_VIVADO --modelsim-path $(dirname $MODELSIM) diff --git a/.ci/fpga/templates/job-build-fpga.yml b/.ci/fpga/templates/job-build-fpga.yml index 4cf296da3..1336c8768 100644 --- a/.ci/fpga/templates/job-build-fpga.yml +++ b/.ci/fpga/templates/job-build-fpga.yml @@ -132,7 +132,7 @@ jobs: python3 ../../tools/utils/repeat_fpga_build.py \ --image-core $(image_core) $TARGET_ARG $BITFILE_NAME_ARG $INCLUDE_DIR_ARG \ --image-core-name $IMAGE_CORE_NAME \ - --vivado-path $(dirname $XILINX_VIVADO) \ + --vivado-path $XILINX_VIVADO \ --num $(max_attempts) --seed $BUILD_SEED --persistent \ $TIMEOUT_ARG pip3 uninstall -y uhd diff --git a/.ci/hwtools/root.py b/.ci/hwtools/root.py index 3b98a1920..257b86acf 100644 --- a/.ci/hwtools/root.py +++ b/.ci/hwtools/root.py @@ -21,10 +21,10 @@ def do_setup(): # Note: The hwtools version for CI purposes is fixed in run_setup.sh rootapi.add_tool(name="hwtools", version="head") - rootapi.add_tool(name="Vivado", version="2021.1", allowlater=False) - rootapi.add_tool(name="modelsim", version="2020.4", allowlater=True) - rootapi.add_tool(name="Diamond", version="3.12", allowlater=True) - rootapi.add_tool(name="Quartus", version="20.1", allowlater=True) + rootapi.add_tool(name="Vivado", version="2025.2") + rootapi.add_tool(name="Questasim", version="2025.1") + rootapi.add_tool(name="Diamond", version="3.12") + rootapi.add_tool(name="Quartus", version="20.1") def do_finish():