Merge pull request #1410 from jordancarlin/cvw-arch-verif-riscv-arch-test

Flow for running cvw-arch-verif through riscv-arch-test
This commit is contained in:
David Harris 2025-05-08 14:18:53 -07:00 committed by GitHub
commit 56ccd39829
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 20 additions and 10 deletions

3
.gitmodules vendored
View file

@ -33,3 +33,6 @@
path = addins/berkeley-testfloat-3
url = https://github.com/ucb-bar/berkeley-testfloat-3
ignore = untracked
[submodule "addins/cvw-riscv-arch-test"]
path = addins/cvw-riscv-arch-test
url = https://github.com/jordancarlin/riscv-arch-test

@ -0,0 +1 @@
Subproject commit 44832a9d3bea991b099c6beb4c962e5b7c1ad3a3

View file

@ -484,10 +484,10 @@ def selectTests(args, sims, coverStr):
addTestsByDir(f"{WALLY}/tests/riscof/work/riscv-arch-test/rv32i_m/vm_sv32", "rv32gc", coveragesim, coverStr, configs, lockstepMode=1)
# addTestsByDir(f"{WALLY}/tests/riscof/work/riscv-arch-test/rv32i_m/pmp32", "rv32gc", coveragesim, coverStr, configs, lockstepMode=1) TODO: Add when working in lockstep
# addTestsByDir(f"{WALLY}/tests/riscof/work/riscv-arch-test/rv64i_m/pmp", "rv64gc", coveragesim, coverStr, configs, lockstepMode=1) TODO: Add when working in lockstep
# run riscv-arch-test tests in functional coverage mode
# run cvw-riscv-arch-test tests in functional coverage mode
if args.fcov_act:
addTestsByDir(f"{WALLY}/tests/riscof/work/riscv-arch-test/rv32i_m", "rv32gc", coveragesim, coverStr, configs, lockstepMode=1)
addTestsByDir(f"{WALLY}/tests/riscof/work/riscv-arch-test/rv64i_m", "rv64gc", coveragesim, coverStr, configs, lockstepMode=1)
addTestsByDir(f"{WALLY}/tests/riscof/work/cvw-riscv-arch-test/rv32i", "rv32gc", coveragesim, coverStr, configs, lockstepMode=1)
addTestsByDir(f"{WALLY}/tests/riscof/work/cvw-riscv-arch-test/rv64i", "rv64gc", coveragesim, coverStr, configs, lockstepMode=1)
# run branch predictor tests
if args.branch:
addTests(bpredtests, defaultsim, coverStr, configs)

View file

@ -5,17 +5,20 @@ nproc := $(shell nproc --ignore=1)
# Directories
arch_dir := $(WALLY)/addins/riscv-arch-test
cvw_arch_dir := $(WALLY)/addins/cvw-riscv-arch-test
wally_dir := $(WALLY)/tests/wally-riscv-arch-test
work_dir := ./riscof_work
work := ./work
arch_workdir := $(work)/riscv-arch-test
cvw_arch_workdir := $(work)/cvw-riscv-arch-test
wally_workdir := $(work)/wally-riscv-arch-test
current_dir := $(shell pwd)
# General make rules
.PHONY: all riscv-arch-test wally-riscv-arch-test quad64 clean
.PHONY: all riscv-arch-test wally-riscv-arch-test clean
all: riscv-arch-test wally-riscv-arch-test
riscv-arch-test: arch32e arch32 arch64
cvw-riscv-arch-test: cvw-arch32e cvw-arch32 cvw-arch64
wally-riscv-arch-test: wally32 wally64
# Generate config.ini files
@ -28,22 +31,25 @@ arch%: config$$*.ini | $(work_dir) $(arch_workdir)
$(MAKE) -f makefile-memfile WORKDIR=$(work_dir)/$@ BITWIDTH=$(patsubst %32e,%32,$*)
rsync -a $(work_dir)/$@/rv*/* $(arch_workdir)/rv$(patsubst %64,%64i,$(patsubst %32,%32i,$*))_m || echo "error suppressed"
# Generate cvw-riscv-arch-test targets
# Generate riscv-arch-test targets
cvw-arch%: config$$*.ini | $(work_dir) $(cvw_arch_workdir)
riscof run --work-dir=$(work_dir)/$@ --config=$< --suite=$(cvw_arch_dir)/riscv-test-suite/ --env=$(cvw_arch_dir)/riscv-test-suite/env --no-browser
$(MAKE) -f makefile-memfile WORKDIR=$(work_dir)/$@ BITWIDTH=$(patsubst %32e,%32,$*)
rsync -a $(work_dir)/$@/rv*/* $(cvw_arch_workdir)/rv$(patsubst %64,%64i,$(patsubst %32,%32i,$*)) || echo "error suppressed"
# Generate wally-riscv-arch-test targets
wally%: config$$*.ini | $(work_dir) $(wally_workdir)
riscof run --work-dir=$(work_dir)/$@ --config=$< --suite=$(wally_dir)/riscv-test-suite/ --env=$(wally_dir)/riscv-test-suite/env --no-browser --no-dut-run
$(MAKE) -f makefile-memfile WORKDIR=$(work_dir)/$@
rsync -a $(work_dir)/$@/rv*/* $(wally_workdir)/rv$(patsubst %64,%64i,$(patsubst %32,%32i,$*))_m || echo "error suppressed"
quad64: config64.ini $(wally_dir)/riscv-test-suite/rv64i_m/Q/riscv-ctg/tests | $(work_dir)
riscof run --work-dir=$(work_dir)/$@ --config=$< --suite=$(wally_dir)/riscv-test-suite/rv64i_m/Q/riscv-ctg/tests/ --env=$(wally_dir)/riscv-test-suite/env
$(MAKE) -f makefile-memfile WORKDIR=$(work_dir)/$@
clean:
rm -f config??*.ini
rm -rf $(work_dir)
rm -rf $(wally_workdir)
rm -rf $(arch_workdir)
rm -rf $(submodule_wor_dir)
rm -rf $(cvw_arch_workdir)
$(work_dir) $(arch_workdir) $(wally_workdir):
$(work_dir) $(arch_workdir) $(wally_workdir) $(cvw_arch_workdir):
mkdir -p $@