mirror of
https://github.com/openhwgroup/cva6.git
synced 2025-04-23 05:37:16 -04:00
Make separate CI target for AMO tests
This commit is contained in:
parent
6eb56f9893
commit
71f61878e3
6 changed files with 42 additions and 46 deletions
|
@ -49,6 +49,13 @@ asm-quest:
|
|||
- make -j${NUM_JOBS} run-asm-tests batch-mode=1
|
||||
dependencies:
|
||||
- build
|
||||
|
||||
amo-quest:
|
||||
stage: test_std
|
||||
script:
|
||||
- make -j${NUM_JOBS} run-amo-tests batch-mode=1
|
||||
dependencies:
|
||||
- build
|
||||
|
||||
bench-quest:
|
||||
stage: test_std
|
||||
|
@ -73,6 +80,14 @@ asm2-ver:
|
|||
dependencies:
|
||||
- build
|
||||
|
||||
# atomics
|
||||
amo-ver:
|
||||
stage: test_std
|
||||
script:
|
||||
- make -j${NUM_JOBS} run-amo-verilator
|
||||
dependencies:
|
||||
- build
|
||||
|
||||
bench-ver:
|
||||
stage: test_std
|
||||
script:
|
||||
|
|
|
@ -88,6 +88,12 @@ jobs:
|
|||
script:
|
||||
- ci/build-riscv-tests.sh
|
||||
- make -j${NUM_JOBS} run-asm-tests2-verilator
|
||||
# amo tests
|
||||
- stage: test
|
||||
name: run amo tests
|
||||
script:
|
||||
- ci/build-riscv-tests.sh
|
||||
- make -j${NUM_JOBS} run-amo-verilator
|
||||
- stage: test
|
||||
name: run torture
|
||||
script:
|
||||
|
|
23
Makefile
23
Makefile
|
@ -82,12 +82,13 @@ root-dir := $(shell pwd)
|
|||
tbs := tb/ariane_tb.sv tb/ariane_testharness.sv
|
||||
# RISCV asm tests and benchmark setup (used for CI)
|
||||
# there is a definesd test-list with selected CI tests
|
||||
riscv-test-dir := tmp/riscv-tests/build/isa/
|
||||
riscv-benchmarks-dir := tmp/riscv-tests/build/benchmarks/
|
||||
riscv-asm-tests-list := ci/riscv-asm-tests.list
|
||||
riscv-benchmarks-list := ci/riscv-benchmarks.list
|
||||
riscv-asm-tests := $(shell xargs printf '\n%s' < $(riscv-asm-tests-list) | cut -b 1-)
|
||||
riscv-benchmarks := $(shell xargs printf '\n%s' < $(riscv-benchmarks-list) | cut -b 1-)
|
||||
riscv-test-dir := tmp/riscv-tests/build/isa/
|
||||
riscv-benchmarks-dir := tmp/riscv-tests/build/benchmarks/
|
||||
riscv-asm-tests-list := ci/riscv-asm-tests.list
|
||||
riscv-amo-tests-list := ci/riscv-amo-tests.list
|
||||
riscv-benchmarks-list := ci/riscv-benchmarks.list
|
||||
riscv-asm-tests := $(shell xargs printf '\n%s' < $(riscv-asm-tests-list) | cut -b 1-)
|
||||
riscv-benchmarks := $(shell xargs printf '\n%s' < $(riscv-benchmarks-list) | cut -b 1-)
|
||||
|
||||
# Search here for include files (e.g.: non-standalone components)
|
||||
incdir :=
|
||||
|
@ -160,9 +161,15 @@ $(riscv-benchmarks): build
|
|||
run-asm-tests: $(riscv-asm-tests)
|
||||
make check-asm-tests
|
||||
|
||||
run-amo-tests: $(riscv-amo-tests)
|
||||
make check-amo-tests
|
||||
|
||||
check-asm-tests:
|
||||
ci/check-tests.sh tmp/riscv-asm-tests- $(shell wc -l $(riscv-asm-tests-list) | awk -F " " '{ print $1 }')
|
||||
|
||||
check-amo-tests:
|
||||
ci/check-tests.sh tmp/riscv-amo-tests- $(shell wc -l $(riscv-amo-tests-list) | awk -F " " '{ print $1 }')
|
||||
|
||||
# can use -jX to run ci tests in parallel using X processes
|
||||
run-benchmarks: $(riscv-benchmarks)
|
||||
make check-benchmarks
|
||||
|
@ -202,13 +209,15 @@ verilate:
|
|||
$(addsuffix -verilator,$(riscv-asm-tests)): verilate
|
||||
$(ver-library)/Variane_testharness $(riscv-test-dir)/$(subst -verilator,,$@)
|
||||
|
||||
run-asm-tests-verilator: $(addsuffix -verilator, $(riscv-asm-tests))
|
||||
run-asm-tests-verilator: $(addsuffix -verilator, $(riscv-asm-tests)) $(addsuffix -verilator, $(riscv-amo-tests))
|
||||
|
||||
# split into two halfs for travis jobs (otherwise they will time out)
|
||||
run-asm-tests1-verilator: $(addsuffix -verilator, $(filter rv64ui-v-% ,$(riscv-asm-tests)))
|
||||
|
||||
run-asm-tests2-verilator: $(addsuffix -verilator, $(filter-out rv64ui-v-% ,$(riscv-asm-tests)))
|
||||
|
||||
run-amo-verilator: $(addsuffix -verilator, $(riscv-amo-tests))
|
||||
|
||||
|
||||
$(addsuffix -verilator,$(riscv-benchmarks)): verilate
|
||||
$(ver-library)/Variane_testharness $(riscv-benchmarks-dir)/$(subst -verilator,,$@)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# check simulation output (only for questasim flow)
|
||||
#
|
||||
# $1 simulation output file basename
|
||||
# $2 list file containing the test names
|
||||
# $2 number of tests to check
|
||||
#
|
||||
|
||||
ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)
|
||||
|
|
|
@ -127,41 +127,3 @@ rv64um-v-divw
|
|||
rv64um-v-divuw
|
||||
rv64um-v-remw
|
||||
rv64um-v-remuw
|
||||
rv64ua-p-amoadd_d
|
||||
rv64ua-p-amoadd_w
|
||||
rv64ua-p-amoor_d
|
||||
rv64ua-p-amoor_w
|
||||
rv64ua-p-amoand_d
|
||||
rv64ua-p-amoand_w
|
||||
rv64ua-p-amoswap_d
|
||||
rv64ua-p-amoswap_w
|
||||
rv64ua-p-amoxor_d
|
||||
rv64ua-p-amoxor_w
|
||||
rv64ua-p-amomax_d
|
||||
rv64ua-p-amomaxu_d
|
||||
rv64ua-p-amomaxu_w
|
||||
rv64ua-p-amomax_w
|
||||
rv64ua-p-amomin_d
|
||||
rv64ua-p-amomin_w
|
||||
rv64ua-p-amominu_d
|
||||
rv64ua-p-amominu_w
|
||||
rv64ua-p-lrsc
|
||||
rv64ua-v-amoadd_d
|
||||
rv64ua-v-amoadd_w
|
||||
rv64ua-v-amoor_d
|
||||
rv64ua-v-amoor_w
|
||||
rv64ua-v-amoand_d
|
||||
rv64ua-v-amoand_w
|
||||
rv64ua-v-amoswap_d
|
||||
rv64ua-v-amoswap_w
|
||||
rv64ua-v-amoxor_d
|
||||
rv64ua-v-amoxor_w
|
||||
rv64ua-v-amomax_d
|
||||
rv64ua-v-amomaxu_d
|
||||
rv64ua-v-amomaxu_w
|
||||
rv64ua-v-amomax_w
|
||||
rv64ua-v-amomin_d
|
||||
rv64ua-v-amomin_w
|
||||
rv64ua-v-amominu_d
|
||||
rv64ua-v-amominu_w
|
||||
rv64ua-v-lrsc
|
||||
|
|
|
@ -141,6 +141,7 @@ module serpent_dcache_ctrl #(
|
|||
// kill -> go back to IDLE
|
||||
if(req_port_i.kill_req) begin
|
||||
state_d = IDLE;
|
||||
req_port_o.data_rvalid = 1'b1;
|
||||
end else if(req_port_i.tag_valid | state_q==REPLAY_READ) begin
|
||||
save_tag = (state_q!=REPLAY_READ);
|
||||
if(wr_cl_vld_i | ~rd_ack_q) begin
|
||||
|
@ -166,6 +167,7 @@ module serpent_dcache_ctrl #(
|
|||
miss_req_o = 1'b1;
|
||||
|
||||
if(req_port_i.kill_req) begin
|
||||
req_port_o.data_rvalid = 1'b1;
|
||||
if(miss_ack_i) begin
|
||||
state_d = KILL_MISS;
|
||||
end else begin
|
||||
|
@ -182,6 +184,7 @@ module serpent_dcache_ctrl #(
|
|||
// returns.
|
||||
MISS_WAIT: begin
|
||||
if(req_port_i.kill_req) begin
|
||||
req_port_o.data_rvalid = 1'b1;
|
||||
if(miss_rtrn_vld_i) begin
|
||||
state_d = IDLE;
|
||||
end else begin
|
||||
|
@ -197,6 +200,7 @@ module serpent_dcache_ctrl #(
|
|||
REPLAY_REQ: begin
|
||||
rd_req_o = 1'b1;
|
||||
if (req_port_i.kill_req) begin
|
||||
req_port_o.data_rvalid = 1'b1;
|
||||
state_d = IDLE;
|
||||
end else if(rd_ack_i) begin
|
||||
state_d = REPLAY_READ;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue