Skip to content

Commit a3044db

Browse files
authored
Merge pull request #151 from pulp-platform/ariane-4-release
Ariane 4.0.0 release
2 parents 2403d26 + 250af8a commit a3044db

229 files changed

Lines changed: 27455 additions & 5876 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.editorconfig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ root = true
66
end_of_line = lf
77
insert_final_newline = true
88
trim_trailing_whitespace = true
9-
max_line_length = off
9+
max_line_length = 100
1010
# 4 space indentation
1111
[*.{sv, svh, v, vhd}]
1212
indent_style = space
13-
indent_size = 4
13+
indent_size = 2

.gitignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,12 @@ build/
2222
*.vcd
2323
*.log
2424
*.out
25+
*.jou
26+
*.o
27+
uart
2528
work-ver/*
29+
fpga/work-fpga
30+
stdout/
31+
work-dpi/
32+
tb/riscv-isa-sim/
33+
work-*/*

.gitlab-ci.yml

Lines changed: 168 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
before_script:
2-
# paths to local or network installations (the riscv toolchain and
2+
# paths to local or network installations (the riscv toolchain and
33
# verilator are not built in the ci job as in travis)
44
- export QUESTASIM_HOME=/usr/pack/modelsim-10.6b-kgf/questasim/
55
- export QUESTASIM_VERSION=-10.6b
66
- export QUESTASIM_FLAGS=-noautoldlibpath
77
- export CXX=g++-7.2.0 CC=gcc-7.2.0
8-
- export RISCV=/usr/scratch2/larain1/gitlabci/riscv_install
9-
- export VERILATOR_ROOT=/usr/scratch2/larain1/gitlabci/verilator-3.924
8+
- export RISCV=/scratch2/gitlabci/riscv_install
9+
- export VERILATOR_ROOT=/scratch2/gitlabci/verilator-3.924
1010
# setup dependent paths
1111
- export PATH=${RISCV}/bin:$VERILATOR_ROOT/bin:${PATH}
1212
- export LIBRARY_PATH=$RISCV/lib
@@ -15,46 +15,195 @@ before_script:
1515
- export CPLUS_INCLUDE_PATH=$RISCV/include:$VERILATOR_ROOT/include:/usr/pack/gcc-7.2.0-af/linux-x64/include
1616
# number of parallel jobs to use for make commands and simulation
1717
- export NUM_JOBS=4
18+
- which java
19+
- java -version
20+
- which git
21+
- git --version
1822
- ci/make-tmp.sh
19-
- git submodule update --init --recursive
20-
23+
- git submodule init
24+
- git submodule update --recursive
25+
2126
variables:
2227
GIT_SUBMODULE_STRATEGY: recursive
2328

2429
stages:
2530
- build
26-
- test_std
31+
- standard
32+
- serpent
2733

34+
###################################
2835
# prepare
2936
build:
3037
stage: build
3138
script:
3239
- ci/build-riscv-tests.sh
3340
- ci/get-torture.sh
3441
- make clean
35-
- make torture-gen
42+
# this currently does not work with the current runner version...
43+
#- make torture-gen
3644
artifacts:
3745
paths:
38-
- tmp
46+
- tmp
47+
48+
###################################
49+
# tests with standard cache system
50+
51+
# rv64ui-p-* and rv64ui-v-* tests
52+
asm-quest:
53+
stage: standard
54+
script:
55+
- make -j${NUM_JOBS} run-asm-tests batch-mode=1
56+
dependencies:
57+
- build
58+
59+
amo-quest:
60+
stage: standard
61+
script:
62+
- make -j${NUM_JOBS} run-amo-tests batch-mode=1
63+
dependencies:
64+
- build
65+
66+
bench-quest:
67+
stage: standard
68+
script:
69+
- make -j${NUM_JOBS} run-benchmarks batch-mode=1
70+
dependencies:
71+
- build
72+
73+
# rv64ui-p-* tests
74+
asm1-ver:
75+
stage: standard
76+
script:
77+
- make -j${NUM_JOBS} run-asm-tests1-verilator
78+
dependencies:
79+
- build
80+
81+
# rv64ui-v-* tests
82+
asm2-ver:
83+
stage: standard
84+
script:
85+
- make -j${NUM_JOBS} run-asm-tests2-verilator
86+
dependencies:
87+
- build
88+
89+
# rv64um-*-* tests
90+
mul-ver:
91+
stage: standard
92+
script:
93+
- make -j${NUM_JOBS} run-mul-verilator
94+
dependencies:
95+
- build
96+
97+
# atomics
98+
amo-ver:
99+
stage: standard
100+
script:
101+
- make -j${NUM_JOBS} run-amo-verilator
102+
dependencies:
103+
- build
104+
105+
bench-ver:
106+
stage: standard
107+
script:
108+
- make -j${NUM_JOBS} run-benchmarks-verilator
109+
dependencies:
110+
- build
111+
112+
bench-ver:
113+
stage: standard
114+
script:
115+
- make -j${NUM_JOBS} run-benchmarks-verilator
116+
dependencies:
117+
- build
118+
119+
# torture:
120+
# stage: standard
121+
# script:
122+
# - make torture-rtest batch-mode=1
123+
# - make torture-rtest-verilator
124+
# dependencies:
125+
# - build
126+
127+
serdiv-quest:
128+
stage: standard
129+
script:
130+
- cd tb/tb_serdiv/
131+
- make simc
132+
- "grep 'CI: PASSED' summary.rep"
133+
dependencies:
134+
- build
135+
136+
###################################
137+
# tests with serpent cache system
138+
139+
# rv64ui-p-* and rv64ui-v-* tests
140+
s-asm-quest:
141+
stage: serpent
142+
script:
143+
- make -j${NUM_JOBS} run-asm-tests defines=PITON_ARIANE+AXI64_CACHE_PORTS batch-mode=1
144+
dependencies:
145+
- build
39146

40-
# rv64ui-p-* and rv64ui-v-* tests
41-
run-asm-tests-questa:
42-
stage: test_std
147+
s-bench-quest:
148+
stage: serpent
43149
script:
44-
- make -j${NUM_JOBS} run-asm-tests
150+
- make -j${NUM_JOBS} run-benchmarks defines=PITON_ARIANE+AXI64_CACHE_PORTS batch-mode=1
45151
dependencies:
46152
- build
47153

48-
run-benchmarks-questa:
49-
stage: test_std
154+
# rv64ui-p-* tests
155+
s-asm1-ver:
156+
stage: serpent
50157
script:
51-
- make -j${NUM_JOBS} run-benchmarks
158+
- make -j${NUM_JOBS} run-asm-tests1-verilator defines=PITON_ARIANE+AXI64_CACHE_PORTS
52159
dependencies:
53-
- build
160+
- build
161+
162+
# rv64ui-v-* tests
163+
s-asm2-ver:
164+
stage: serpent
165+
script:
166+
- make -j${NUM_JOBS} run-asm-tests2-verilator defines=PITON_ARIANE+AXI64_CACHE_PORTS
167+
dependencies:
168+
- build
169+
170+
# rv64um-*-* tests
171+
mul-ver:
172+
stage: standard
173+
script:
174+
- make -j${NUM_JOBS} run-mul-verilator defines=PITON_ARIANE+AXI64_CACHE_PORTS
175+
dependencies:
176+
- build
177+
178+
s-bench-ver:
179+
stage: serpent
180+
script:
181+
- make -j${NUM_JOBS} run-benchmarks-verilator defines=PITON_ARIANE+AXI64_CACHE_PORTS
182+
dependencies:
183+
- build
184+
185+
s-icache-quest:
186+
stage: serpent
187+
script:
188+
- cd tb/tb_serpent_icache/
189+
- make simc
190+
- "grep 'CI: PASSED' summary.rep"
54191

55-
torture:
56-
stage: test_std
192+
s-dcache-quest:
193+
stage: serpent
57194
script:
58-
- make torture-rtest
195+
- cd tb/tb_serpent_dcache/
196+
- make simc
197+
- "grep 'CI: PASSED' RD0_summary.rep"
198+
- "grep 'CI: PASSED' RD1_summary.rep"
199+
- "grep 'CI: PASSED' TB_MEM_summary.rep"
59200
dependencies:
60201
- build
202+
203+
# s-torture:
204+
# stage: serpent
205+
# script:
206+
# - make torture-rtest defines=PITON_ARIANE+AXI64_CACHE_PORTS batch-mode=1
207+
# - make torture-rtest-verilator defines=PITON_ARIANE+AXI64_CACHE_PORTS
208+
# dependencies:
209+
# - build

.gitmodules

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,36 @@
44
[submodule "src/axi_node"]
55
path = src/axi_node
66
url = https://github.com/pulp-platform/axi_node.git
7-
[submodule "src/fpu"]
8-
path = src/fpu
9-
url = https://github.com/pulp-platform/fpnew.git
107
[submodule "src/fpga-support"]
118
path = src/fpga-support
129
url = https://github.com/pulp-platform/fpga-support.git
1310
[submodule "src/common_cells"]
1411
path = src/common_cells
15-
url = https://github.com/pulp-platform/common_cells.git
12+
url = https://github.com/pulp-platform/common_cells.git
1613
[submodule "src/axi"]
1714
path = src/axi
1815
url = https://github.com/pulp-platform/axi.git
16+
[submodule "src/register_interface"]
17+
path = src/register_interface
18+
url = https://github.com/pulp-platform/register_interface.git
19+
[submodule "fpga/src/apb_uart"]
20+
path = fpga/src/apb_uart
21+
url = https://github.com/pulp-platform/apb_uart.git
22+
[submodule "fpga/src/apb_node"]
23+
path = fpga/src/apb_node
24+
url = https://github.com/pulp-platform/apb_node.git
25+
[submodule "fpga/src/axi2apb"]
26+
path = fpga/src/axi2apb
27+
url = https://github.com/pulp-platform/axi2apb.git
28+
[submodule "fpga/src/axi_slice"]
29+
path = fpga/src/axi_slice
30+
url = https://github.com/pulp-platform/axi_slice.git
1931
[submodule "src/fpu_div_sqrt_mvp"]
2032
path = src/fpu_div_sqrt_mvp
2133
url = https://github.com/pulp-platform/fpu_div_sqrt_mvp.git
2234
[submodule "src/tech_cells_generic"]
2335
path = src/tech_cells_generic
2436
url = https://github.com/pulp-platform/tech_cells_generic.git
37+
[submodule "src/fpu"]
38+
path = src/fpu
39+
url = https://github.com/pulp-platform/fpnew.git

.travis.yml

Lines changed: 46 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ addons:
3030
- python-pexpect
3131
- libusb-1.0-0-dev
3232
- default-jdk
33+
- zlib1g-dev
34+
- valgrind
3335
env:
3436
global:
3537
- RISCV="/home/travis/riscv_install"
@@ -75,26 +77,66 @@ jobs:
7577
name: run riscv benchmarks
7678
script:
7779
- ci/build-riscv-tests.sh
78-
- make -j${NUM_JOBS} run-benchmarks-verilator
80+
- make -j${NUM_JOBS} run-benchmarks-verilator
7981
# rv64ui-p-* tests
8082
- stage: test
8183
name: run asm tests1
8284
script:
8385
- ci/build-riscv-tests.sh
84-
- make -j${NUM_JOBS} run-asm-tests1-verilator
86+
- make -j${NUM_JOBS} run-asm-tests1-verilator
8587
# rv64ui-v-* tests
8688
- stage: test
8789
name: run asm tests2
8890
script:
8991
- ci/build-riscv-tests.sh
90-
- make -j${NUM_JOBS} run-asm-tests2-verilator
92+
- make -j${NUM_JOBS} run-asm-tests2-verilator
93+
# rv64um-*-* tests
94+
- stage: test
95+
name: run mul tests
96+
script:
97+
- ci/build-riscv-tests.sh
98+
- make -j${NUM_JOBS} run-mul-verilator
99+
# amo tests
100+
- stage: test
101+
name: run amo tests
102+
script:
103+
- ci/build-riscv-tests.sh
104+
- make -j${NUM_JOBS} run-amo-verilator
91105
- stage: test
92106
name: run torture
93107
script:
94108
- ci/get-torture.sh
95109
- make clean
96110
- make torture-gen
97-
- make torture-rtest-verilator
111+
- make torture-rtest-verilator
112+
113+
- stage: test
114+
name: run riscv benchmarks (serpent)
115+
script:
116+
- ci/build-riscv-tests.sh
117+
- make -j${NUM_JOBS} run-benchmarks-verilator defines=PITON_ARIANE+AXI64_CACHE_PORTS
118+
# rv64ui-p-* tests
119+
- stage: test
120+
name: run asm tests1 (serpent)
121+
script:
122+
- ci/build-riscv-tests.sh
123+
- make -j${NUM_JOBS} run-asm-tests1-verilator defines=PITON_ARIANE+AXI64_CACHE_PORTS
124+
# rv64ui-v-* tests
125+
- stage: test
126+
name: run asm tests2 (serpent)
127+
script:
128+
- ci/build-riscv-tests.sh
129+
- make -j${NUM_JOBS} run-asm-tests2-verilator defines=PITON_ARIANE+AXI64_CACHE_PORTS
130+
131+
- stage: test
132+
name: run torture (serpent)
133+
script:
134+
- ci/get-torture.sh
135+
- make clean
136+
- make torture-gen defines=PITON_ARIANE+AXI64_CACHE_PORTS
137+
- make torture-rtest-verilator defines=PITON_ARIANE+AXI64_CACHE_PORTS
138+
139+
98140

99141
# extra time during long builds
100142
install: travis_wait

Bender.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ dependencies:
77
axi_mem_if: { git: "https://github.com/pulp-platform/axi_mem_if.git", version: 0.2.0 }
88
axi_node: { git: "https://github.com/pulp-platform/axi_node.git", version: 1.1.1 }
99
tech_cells_generic: { git: "https://github.com/pulp-platform/tech_cells_generic.git", version: 0.1.1 }
10-
common_cells: { git: "https://github.com/pulp-platform/common_cells.git", version: 1.7.5 }
10+
common_cells: { git: "https://github.com/pulp-platform/common_cells.git", version: 1.8.0 }
1111
fpga-support: { git: "https://github.com/pulp-platform/fpga-support.git", version: 0.3.2 }
1212

1313
sources:
@@ -73,10 +73,10 @@ sources:
7373
- src/issue_read_operands.sv
7474
- src/issue_stage.sv
7575
- src/load_unit.sv
76-
- src/lsu_arbiter.sv
77-
- src/lsu.sv
76+
- src/load_store_unit.sv
7877
- src/mmu.sv
7978
- src/mult.sv
79+
- src/serdiv.sv
8080
- src/perf_counters.sv
8181
- src/ptw.sv
8282
- src/ariane_regfile_ff.sv

0 commit comments

Comments
 (0)