diff --git a/.gitignore b/.gitignore index a7f1d43be..c9935826d 100644 --- a/.gitignore +++ b/.gitignore @@ -127,3 +127,4 @@ tests/custom/*/*/*.memfile tests/custom/crt0/*.a /pipelined/regression/sd_model.log external +pipelined/regression/results diff --git a/pipelined/regression/run-imperasdv-tests.bash b/pipelined/regression/run-imperasdv-tests.bash new file mode 100755 index 000000000..c037c369d --- /dev/null +++ b/pipelined/regression/run-imperasdv-tests.bash @@ -0,0 +1,22 @@ +#!/bin/bash + +if [ -d results ]; then + rm -rf results +fi +mkdir -p results + +ALL=$(find ${WALLY}/external/ImperasDV-HMC/tests/riscof/work/riscv-arch-test/rv64i_m -name "ref" -type d) + +export IMPERAS_TOOLS=$(pwd)/imperas.ic +export OTHERFLAGS="+TRACE2LOG_ENABLE=1 VERBOSE=1" + +for t in $ALL; do + export TESTDIR=$(dirname ${t}) + OUTLOG=$(echo ${TESTDIR} | sed "s|${WALLY}/external/ImperasDV-HMC/tests/riscof/work|results|").log + OUTDIR=$(dirname ${OUTLOG}) + echo "Running test ${TESTDIR} -> ${OUTDIR} :: ${OUTLOG}" + + mkdir -p ${OUTDIR} + vsim -c -do "do wally-pipelined-imperas.do rv64gc" + mv transcript ${OUTLOG} +done diff --git a/setup.imperas.sh b/setup.imperas.sh index 9a9f12f94..e3ac447bf 100644 --- a/setup.imperas.sh +++ b/setup.imperas.sh @@ -1,11 +1,14 @@ #!/bin/bash -echo "Imperas Environment to setup Wally" +IMP_HASH=56b1479 -# Path to Wally repository +REPO=davidharrishmc +REPO=eroom1966 +git clone https://github.com/${REPO}/riscv-wally -b imperas + +cd riscv-wally WALLY=$(dirname ${BASH_SOURCE[0]:-$0}) export WALLY=$(cd "$WALLY" && pwd) -echo \$WALLY set to ${WALLY} # clone the Imperas repo if [ ! -d external ]; then @@ -16,25 +19,24 @@ pushd external git clone git@github.com:Imperas/ImperasDV-HMC.git fi pushd ImperasDV-HMC - git checkout 0c2f365 + git checkout $IMP_HASH popd popd -isetup -dv ${WALLY}/external/ImperasDV-HMC/Imperas +# Setup Imperas +source ${WALLY}/external/ImperasDV-HMC/Imperas/bin/setup.sh +setupImperas ${WALLY}/external/ImperasDV-HMC/Imperas +export IMPERAS_PERSONALITY=CPUMAN_DV_ASYNC + +# setup QUESTA (Imperas only command, YMMV) svsetup -questa pushd pipelined/regression # With IDV IMPERAS_TOOLS=$(pwd)/imperas.ic \ OTHERFLAGS="+TRACE2LOG_ENABLE=1 VERBOSE=1" \ - TESTDIR=../../tests/riscof_lee/work/riscv-arch-test/rv64i_m/F/src/fadd_b1-01.S \ + TESTDIR=${WALLY}/external/ImperasDV-HMC/tests/riscof/work/riscv-arch-test/rv64i_m/F/src/fadd_b1-01.S \ vsim -c -do "do wally-pipelined-imperas.do rv64gc" - - # Without IDV - IMPERAS_TOOLS=$(pwd)/imperas.ic \ - OTHERFLAGS="+TRACE2LOG_ENABLE=1 VERBOSE=1" \ - TESTDIR=../../tests/riscof_lee/work/riscv-arch-test/rv64i_m/F/src/fadd_b1-01.S \ - vsim -c -do "do wally-pipelined-imperas-no-idv.do rv64gc" popd # notes