Skip to content
Snippets Groups Projects

Convert to new emp-pipleline template

Merged David Gabriel Monk requested to merge dmonk-master-patch-55819 into master
Files
6
+ 8
156
stages:
- Static Analysis
- Simulation
- Make Project
- Pre-build Checks
- Synthesis
- Implementation
- Package
include:
- project: "dmonk-emp-projects/emp-pipeline"
file: "/ci/templates/vivado-jobs.yml"
variables:
IPBUS_DOCKER_REGISTRY: "gitlab-registry.cern.ch/ipbus/ipbus-docker"
@@ -15,67 +10,26 @@ variables:
SIM_DEPFILE: debug/top_sim.dep
PROJECT_ALGORITHM: top
.vivado-job:
image: gitlab-registry.cern.ch/dmonk-emp-projects/docker-images/ipbb-c8:dev-2020g
.vivado-job-build:
tags:
- docker
- xilinx-tools
- vivado-2019.2
- c8
before_script:
- source /opt/Xilinx/Vivado/$VIVADO_VER/settings64.sh
- cd ci/builds/work
- mkdir proj
- cp -r $CI_PROJECT_DIR/ci/builds/artifacts/$CI_PROJECT_NAME-$PROJECT_ALGORITHM $CI_PROJECT_DIR/ci/builds/work/proj/
- rsync -ar $CI_PROJECT_DIR $CI_PROJECT_DIR/ci/builds/work/src/ --exclude ci
- cd proj/$CI_PROJECT_NAME-$PROJECT_ALGORITHM
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- ci/builds/work/var
- ci/builds/work/src
- ci/builds/work/.ipbb_work.yml
# after_script:
# - |
# if [ -e success ]; then
# echo on success
# else
# ls -alFgh $CI_PROJECT_DIR/ci/builds/work/proj/$CI_PROJECT_NAME-$PROJECT_ALGORITHM
# cat $CI_PROJECT_DIR/ci/builds/work/proj/$CI_PROJECT_NAME-$PROJECT_ALGORITHM/vivado_synth.log
# fi
Check Dependencies:
stage: Static Analysis
image: gitlab-registry.cern.ch/dmonk-emp-projects/docker-images/ipbb-c8:dev-2020g
before_script:
- python3 ci/setup_project.py
script:
- cd ci/builds/work
- ipbb proj create vivado test $CI_PROJECT_NAME:$PROJECT_ALGORITHM $PROJECT_DEPFILE
- cd proj/test
- ipbb ipbus gendecoders -f
- if [[ "$(ipbb dep report | grep Missing | wc -l)" -gt 0 ]]; then ipbb dep report; exit 1; else ipbb dep report; fi
# only:
# changes:
# - gbt-histogram/firmware/cfg/sm1_v1/top.dep # This must be edited manually!
# - ci/config.yaml
Simulate Payload:
stage: Simulation
image: gitlab-registry.cern.ch/dmonk-emp-projects/docker-images/ipbb-c8:dev-2020g
extends: .vivado-job-base
tags:
- docker
- modelsim-2019.2
before_script:
- mkdir -p ci/builds
- export PATH=$PATH:/opt/mentor/$MODELSIM_VER/modeltech/bin
- source /opt/Xilinx/Vivado/$VIVADO_VER/settings64.sh
- python3 ci/setup_project.py
- python3 /ci-tools/setup_project.py $CI_PROJECT_DIR/dependencies.yml
- mkdir -p /root/.xilinx_sim_libs/
- cp -r /opt/mentor/simlibs/$MODELSIM_VER /root/.xilinx_sim_libs/
script:
- cd ci/builds/work
- ipbb proj create sim test $CI_PROJECT_NAME:$PROJECT_ALGORITHM $SIM_DEPFILE
- ipbb proj create sim test $BUILD_REPO:$PROJECT_ALGORITHM $SIM_DEPFILE
- cd proj/test
- ipbb sim setup-simlib
- cp -r /root/.xilinx_sim_libs/$MODELSIM_VER/modelsim_$MODELSIM_VER $CI_PROJECT_DIR/ci/builds/simlibs/
@@ -83,105 +37,3 @@ Simulate Payload:
- ipbb sim make-project
- ./vsim -c work.top -Gsourcefile=$CI_PROJECT_DIR/ci/builds/txt/test_pattern.txt -Gsinkfile=output.txt -do 'run 5us' -do 'quit'
- cat output.txt
Make Project:
stage: Make Project
# only:
# - master
image: gitlab-registry.cern.ch/dmonk-emp-projects/docker-images/ipbb-c8:dev-2020g
tags:
- docker
- xilinx-tools
- vivado-2019.2
- c8
before_script:
- source /opt/Xilinx/Vivado/$VIVADO_VER/settings64.sh
- python3 ci/setup_project.py
script:
- cd ci/builds/work
- ipbb proj create vivado $CI_PROJECT_NAME-$PROJECT_ALGORITHM $CI_PROJECT_NAME:$PROJECT_ALGORITHM $PROJECT_DEPFILE
- cd proj/$CI_PROJECT_NAME-$PROJECT_ALGORITHM
- ipbb ipbus gendecoders -f
- ipbb vivado project --enable-ip-cache --single ""
- cd ..
- cp -r $CI_PROJECT_NAME-$PROJECT_ALGORITHM $CI_PROJECT_DIR/ci/builds/artifacts/
- cd ..
- ls -alFgh
- ls -alFgh proj
- ls -alFgh proj/$CI_PROJECT_NAME-$PROJECT_ALGORITHM
artifacts:
paths:
- ci/builds/artifacts
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- ci/builds/work/var
- ci/builds/work/src
- ci/builds/work/.ipbb_work.yml
Check Syntax:
extends: .vivado-job
stage: Pre-build Checks
# only:
# - master
dependencies:
- Make Project
script:
- ipbb vivado check-syntax
- touch $CI_PROJECT_DIR/success
artifacts:
paths:
- ci/builds/artifacts
Synthesise:
extends: .vivado-job
stage: Synthesis
# only:
# - master
dependencies:
- Make Project
script:
- ipbb vivado synth -j$(nproc)
- cd ..
- cp -r $CI_PROJECT_NAME-$PROJECT_ALGORITHM $CI_PROJECT_DIR/ci/builds/artifacts/
- touch $CI_PROJECT_DIR/success
artifacts:
paths:
- ci/builds/artifacts
Implement:
extends: .vivado-job
stage: Implementation
# only:
# - master
dependencies:
- Synthesise
script:
- ipbb vivado impl -j$(nproc)
- cd ..
- cp -r $CI_PROJECT_NAME-$PROJECT_ALGORITHM $CI_PROJECT_DIR/ci/builds/artifacts/
- touch $CI_PROJECT_DIR/success
- cd $CI_PROJECT_NAME-$PROJECT_ALGORITHM
- ipbb vivado resource-usage | tee usage.txt
- pip3 install anybadge
- python3 $CI_PROJECT_DIR/ci/generate_badges.py usage.txt $CI_PROJECT_DIR/ci/badges
artifacts:
paths:
- ci/builds/artifacts
- ci/badges
Generate Package:
extends: .vivado-job
stage: Package
# only:
# - master
dependencies:
- Implement
script:
- ipbb vivado package
- cd ..
- cp -r $CI_PROJECT_NAME-$PROJECT_ALGORITHM $CI_PROJECT_DIR/ci/builds/artifacts/
- touch $CI_PROJECT_DIR/success
artifacts:
paths:
- ci/builds/artifacts/$CI_PROJECT_NAME-$PROJECT_ALGORITHM/package
Loading