forked from pulp-platform/snitch_cluster
-
Notifications
You must be signed in to change notification settings - Fork 1
/
.gitlab-ci.yml
130 lines (116 loc) · 3.18 KB
/
.gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# Copyright 2023 ETH Zurich and University of Bologna.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
variables:
GIT_STRATEGY: clone
GIT_SUBMODULE_STRATEGY: recursive
PYTHON: /usr/local/anaconda3-2022.05/bin/python3
BENDER: bender-0.27.1
CC: gcc-9.2.0
CXX: g++-9.2.0
VCS: vcs-2020.12
VERILATOR: verilator-4.110
QUESTA: questa-2022.3
LLVM_BINROOT: /usr/pack/riscv-1.0-kgf/pulp-llvm-0.12.0/bin
CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER: /usr/pack/gcc-9.2.0-af/linux-x64/bin/gcc
LLVM_SYS_120_PREFIX: /usr/pack/llvm-12.0.1-af
CMAKE: cmake-3.18.1
before_script:
- $PYTHON -m venv .venv
- source .venv/bin/activate
- pip install -r python-requirements.txt
- $BENDER vendor init
##############
# Build docs #
##############
docs:
script:
- make docs
#################################
# Build Snitch cluster software #
#################################
snitch-cluster-sw:
script:
- cd target/snitch_cluster
- make sw
artifacts:
paths:
- sw/math/include/bits/alltypes.h
- target/snitch_cluster/sw/**/build/*.elf
expire_in: 1 day
snitch-cluster-sw-banshee:
script:
- cd target/snitch_cluster
- make SELECT_RUNTIME=banshee sw
artifacts:
paths:
- sw/math/include/bits/alltypes.h
- target/snitch_cluster/sw/**/build/*.elf
expire_in: 1 day
#######################
# Standalone IP tests #
#######################
# Build and run all individual IP testbenches.
# Currently missing IP tests:
# - snitch_vm
# - snitch_ipu
# - snitch_dma
# - snitch
# Currently failing IP tests/scripts:
# - reqrsp_interface
# - snitch_ssr
snitch-ip-tests:
needs: []
parallel:
matrix:
- IP:
- mem_interface
- snitch_cluster
- snitch_icache
- tcdm_interface
script:
- cd hw/$IP
- $QUESTA ./util/compile.sh
- $QUESTA ./util/run_vsim.sh
########################
# Snitch cluster tests #
########################
# Verilator
snitch-cluster-vlt:
needs: [snitch-cluster-sw]
# yamllint disable rule:line-length
script:
- cd target/snitch_cluster
- $VERILATOR make bin/snitch_cluster.vlt
- $VERILATOR ../../util/sim/simulate.py sw/run.yaml --simulator verilator -j --verbose
# yamllint enable rule:line-length
# VCS
snitch-cluster-vcs:
needs: [snitch-cluster-sw]
script:
- cd target/snitch_cluster
- $VCS make bin/snitch_cluster.vcs
- $VCS ../../util/sim/simulate.py sw/run.yaml --simulator vcs -j --verbose
# Questa
snitch-cluster-vsim:
needs: [snitch-cluster-sw]
script:
- cd target/snitch_cluster
- $QUESTA make bin/snitch_cluster.vsim
- $QUESTA ../../util/sim/simulate.py sw/run.yaml --simulator vsim -j
--verbose
# Banshee
snitch-cluster-banshee:
needs: [snitch-cluster-sw-banshee]
variables:
SNITCH_LOG: info
script:
- rustup install 1.63.0
- rustup override set 1.63.0
- rustc --version
- rustup --version
- git clone [email protected]:pulp-platform/banshee.git --recurse-submodules
- cd banshee
- cargo install --debug --path .
- cd ../target/snitch_cluster
- ../../util/sim/simulate.py sw/run.yaml --simulator banshee -j --verbose