forked from pulp-platform/snitch_cluster
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
146 lines (128 loc) · 3.38 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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# 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
# Enable colors in CI terminal
TERM: ansi
FORCE_COLOR: 1
# Configure environment
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:
source iis-setup.sh
##############
# 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
- ./util/compile.sh
- ./util/run_vsim.sh
########################
# Snitch cluster tests #
########################
# Verilator
snitch-cluster-vlt:
needs: [snitch-cluster-sw]
script:
- cd target/snitch_cluster
- make bin/snitch_cluster.vlt
- ./run.py sw/run.yaml --simulator verilator -j --run-dir runs/vlt
# VCS
snitch-cluster-vcs:
needs: [snitch-cluster-sw]
script:
- cd target/snitch_cluster
- make bin/snitch_cluster.vcs
- ./run.py sw/run.yaml --simulator vcs -j --run-dir runs/vcs
# Questa
snitch-cluster-vsim:
needs: [snitch-cluster-sw]
script:
- cd target/snitch_cluster
- make bin/snitch_cluster.vsim
- ./run.py sw/run.yaml --simulator vsim -j --run-dir runs/vsim
- make SIM_DIR=./runs/vsim/simple annotate -j
# 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
- ./run.py sw/run.yaml --simulator banshee -j --run-dir runs/banshee
# Tests requiring hardware FDIV unit
snitch-cluster-fdiv-vsim:
script:
- cd target/snitch_cluster
- make CFG_OVERRIDE=cfg/fdiv.hjson sw
- make bin/snitch_cluster.vsim
- ./run.py sw/fdiv.yaml --simulator vsim -j --run-dir runs/vsim
# Test OmegaNet TCDM interconnect
snitch-cluster-omega-vsim:
script:
- cd target/snitch_cluster
- make CFG_OVERRIDE=cfg/omega.hjson sw
- make bin/snitch_cluster.vsim
- ./run.py sw/run.yaml --simulator vsim -j --run-dir runs/vsim
############
# Non-free #
############
nonfree:
script:
- make nonfree
- make elab