mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
Fixed bug with gui mode testbench_fp
removed old wally-linux-imperas.do
This commit is contained in:
parent
4cc8859612
commit
970af9551c
5
bin/wsim
5
bin/wsim
@ -59,7 +59,10 @@ if (args.sim == "questa"):
|
|||||||
if (args.coverage):
|
if (args.coverage):
|
||||||
cmd += " --coverage"
|
cmd += " --coverage"
|
||||||
if (args.gui): # launch Questa with GUI; add +acc to keep variables accessible
|
if (args.gui): # launch Questa with GUI; add +acc to keep variables accessible
|
||||||
cmd = cd + "; vsim -do \"" + cmd + " +acc -GDEBUG=1\""
|
if(args.tb == "testbench"):
|
||||||
|
cmd = cd + "; vsim -do \"" + cmd + " +acc -GDEBUG=1\""
|
||||||
|
elif(args.tb == "testbench_fp"):
|
||||||
|
cmd = cd + "; vsim -do \"" + cmd + " +acc\""
|
||||||
else: # launch Questa in batch mode
|
else: # launch Questa in batch mode
|
||||||
cmd = cd + "; vsim -c -do \"" + cmd + "\""
|
cmd = cd + "; vsim -c -do \"" + cmd + "\""
|
||||||
print("Running Questa with command: " + cmd)
|
print("Running Questa with command: " + cmd)
|
||||||
|
@ -1,84 +0,0 @@
|
|||||||
# wally.do
|
|
||||||
# SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1
|
|
||||||
#
|
|
||||||
# Modification by Oklahoma State University & Harvey Mudd College
|
|
||||||
# Use with Testbench
|
|
||||||
# James Stine, 2008; David Harris 2021
|
|
||||||
# Go Cowboys!!!!!!
|
|
||||||
#
|
|
||||||
# Takes 1:10 to run RV64IC tests using gui
|
|
||||||
|
|
||||||
# run with vsim -do "do wally-pipelined.do rv64ic riscvarchtest-64m"
|
|
||||||
|
|
||||||
# Use this wally-pipelined.do file to run this example.
|
|
||||||
# Either bring up ModelSim and type the following at the "ModelSim>" prompt:
|
|
||||||
# do wally.do
|
|
||||||
# or, to run from a shell, type the following at the shell prompt:
|
|
||||||
# vsim -do wally.do -c
|
|
||||||
# (omit the "-c" to see the GUI while running from the shell)
|
|
||||||
|
|
||||||
onbreak {resume}
|
|
||||||
|
|
||||||
# create library
|
|
||||||
if [file exists work] {
|
|
||||||
vdel -all
|
|
||||||
}
|
|
||||||
vlib work
|
|
||||||
|
|
||||||
# compile source files
|
|
||||||
# suppress spurious warnngs about
|
|
||||||
# "Extra checking for conflicts with always_comb done at vopt time"
|
|
||||||
# because vsim will run vopt
|
|
||||||
|
|
||||||
# start and run simulation
|
|
||||||
# remove +acc flag for faster sim during regressions if there is no need to access internal signals
|
|
||||||
if {$2 eq "buildroot"} {
|
|
||||||
vlog -lint -work work_${1}_${2} \
|
|
||||||
+define+USE_IMPERAS_DV \
|
|
||||||
+incdir+../../config/deriv/$1 \
|
|
||||||
+incdir+../../config/shared \
|
|
||||||
+incdir+$env(IMPERAS_HOME)/ImpPublic/include/host \
|
|
||||||
+incdir+$env(IMPERAS_HOME)/ImpProprietary/include/host \
|
|
||||||
$env(IMPERAS_HOME)/ImpPublic/source/host/rvvi/rvviApiPkg.sv \
|
|
||||||
$env(IMPERAS_HOME)/ImpPublic/source/host/rvvi/rvviTrace.sv \
|
|
||||||
$env(IMPERAS_HOME)/ImpProprietary/source/host/idv/idvApiPkg.sv \
|
|
||||||
$env(IMPERAS_HOME)/ImpProprietary/source/host/idv/idvPkg.sv \
|
|
||||||
$env(IMPERAS_HOME)/ImpProprietary/source/host/idv/idvApiPkg.sv \
|
|
||||||
$env(IMPERAS_HOME)/ImpProprietary/source/host/idv/trace2api.sv \
|
|
||||||
$env(IMPERAS_HOME)/ImpProprietary/source/host/idv/trace2log.sv \
|
|
||||||
$env(IMPERAS_HOME)/ImpProprietary/source/host/idv/trace2cov.sv \
|
|
||||||
$env(IMPERAS_HOME)/ImpProprietary/source/host/idv/trace2bin.sv \
|
|
||||||
../../src/cvw.sv \
|
|
||||||
../../testbench/testbench.sv \
|
|
||||||
../../testbench/common/*.sv ../../src/*/*.sv \
|
|
||||||
../../src/*/*/*.sv -suppress 2583
|
|
||||||
|
|
||||||
#
|
|
||||||
# start and run simulation
|
|
||||||
# for profiling add
|
|
||||||
# vopt -fprofile
|
|
||||||
# vsim -fprofile+perf
|
|
||||||
# visualizer -fprofile+perf+dir=fprofile
|
|
||||||
#
|
|
||||||
eval vopt +acc work_${1}_${2}.testbench -work work_${1}_${2} -G RISCV_DIR=$3 \
|
|
||||||
-o testbenchopt
|
|
||||||
eval vsim -lib work_${1}_${2} testbenchopt +TEST=$2 -suppress 8852,12070,3084,3829,13286 -fatal 7 \
|
|
||||||
-sv_lib $env(IMPERAS_HOME)/lib/Linux64/ImperasLib/imperas.com/verification/riscv/1.0/model \
|
|
||||||
$env(OTHERFLAGS)
|
|
||||||
|
|
||||||
#-- Run the Simulation
|
|
||||||
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
||||||
echo "Don't forget to change DEBUG_LEVEL = 0."
|
|
||||||
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
||||||
#run 100 ns
|
|
||||||
#force -deposit testbench/dut/core/priv/priv/csr/csri/IE_REGW 16'h2aa
|
|
||||||
#force -deposit testbench/dut/uncore/uncore/clint/clint/MTIMECMP 64'h1000
|
|
||||||
run 9800 ms
|
|
||||||
add log -recursive /testbench/dut/*
|
|
||||||
do wave.do
|
|
||||||
run 200 ms
|
|
||||||
#run -all
|
|
||||||
|
|
||||||
exec ./slack-notifier/slack-notifier.py
|
|
||||||
|
|
||||||
}
|
|
@ -18,7 +18,7 @@
|
|||||||
# vsim -do wally-batch.do -c
|
# vsim -do wally-batch.do -c
|
||||||
# (omit the "-c" to see the GUI while running from the shell)
|
# (omit the "-c" to see the GUI while running from the shell)
|
||||||
|
|
||||||
set DEBUG 0
|
set DEBUG 1
|
||||||
|
|
||||||
onbreak {resume}
|
onbreak {resume}
|
||||||
onerror {quit -f}
|
onerror {quit -f}
|
||||||
@ -102,15 +102,17 @@ set LockStepIndex [lsearch -exact $lst "--lockstep"]
|
|||||||
if {$LockStepIndex >= 0} {
|
if {$LockStepIndex >= 0} {
|
||||||
set lockstep 1
|
set lockstep 1
|
||||||
|
|
||||||
|
# ideally this would all be one or two variables, but questa is having a real hard time
|
||||||
|
# with this. For now they have to be separate.
|
||||||
set lockstepvoptstring "+define+USE_IMPERAS_DV"
|
set lockstepvoptstring "+define+USE_IMPERAS_DV"
|
||||||
set ImperasPubInc +incdir+$env(IMPERAS_HOME)/ImpPublic/include/host
|
set ImperasPubInc +incdir+$env(IMPERAS_HOME)/ImpPublic/include/host
|
||||||
set ImperasPrivInc +incdir+$env(IMPERAS_HOME)/ImpProprietary/include/host
|
set ImperasPrivInc +incdir+$env(IMPERAS_HOME)/ImpProprietary/include/host
|
||||||
set rvviFiles $env(IMPERAS_HOME)/ImpPublic/source/host/rvvi/*.sv
|
set rvviFiles $env(IMPERAS_HOME)/ImpPublic/source/host/rvvi/*.sv
|
||||||
set idvFiles $env(IMPERAS_HOME)/ImpProprietary/source/host/idv/*.sv
|
set idvFiles $env(IMPERAS_HOME)/ImpProprietary/source/host/idv/*.sv
|
||||||
|
|
||||||
set SVLib "-sv_lib"
|
set SVLib "-sv_lib"
|
||||||
set SVLibPath $env(IMPERAS_HOME)/lib/Linux64/ImperasLib/imperas.com/verification/riscv/1.0/model
|
set SVLibPath $env(IMPERAS_HOME)/lib/Linux64/ImperasLib/imperas.com/verification/riscv/1.0/model
|
||||||
set OtherFlags $env(OTHERFLAGS)
|
set OtherFlags $env(OTHERFLAGS)
|
||||||
|
|
||||||
set lst [lreplace $lst $LockStepIndex $LockStepIndex]
|
set lst [lreplace $lst $LockStepIndex $LockStepIndex]
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -137,18 +139,13 @@ if {$DEBUG > 0} {
|
|||||||
# "Extra checking for conflicts with always_comb done at vopt time"
|
# "Extra checking for conflicts with always_comb done at vopt time"
|
||||||
# because vsim will run vopt
|
# because vsim will run vopt
|
||||||
|
|
||||||
echo $lockstepvoptstring
|
|
||||||
|
|
||||||
vlog -lint -work ${WKDIR} +incdir+${CONFIG}/${CFG} +incdir+${CONFIG}/deriv/${CFG} ${lockstepvoptstring} ${ImperasPubInc} ${ImperasPrivInc} +incdir+${CONFIG}/shared ${rvviFiles} ${idvFiles} ${SRC}/cvw.sv ${TB}/${TESTBENCH}.sv ${TB}/common/*.sv ${SRC}/*/*.sv ${SRC}/*/*/*.sv -suppress 2583 -suppress 7063,2596,13286
|
vlog -lint -work ${WKDIR} +incdir+${CONFIG}/${CFG} +incdir+${CONFIG}/deriv/${CFG} ${lockstepvoptstring} ${ImperasPubInc} ${ImperasPrivInc} +incdir+${CONFIG}/shared ${rvviFiles} ${idvFiles} ${SRC}/cvw.sv ${TB}/${TESTBENCH}.sv ${TB}/common/*.sv ${SRC}/*/*.sv ${SRC}/*/*/*.sv -suppress 2583 -suppress 7063,2596,13286
|
||||||
|
|
||||||
# start and run simulation
|
# start and run simulation
|
||||||
# remove +acc flag for faster sim during regressions if there is no need to access internal signals
|
# remove +acc flag for faster sim during regressions if there is no need to access internal signals
|
||||||
vopt $accFlag wkdir/${CFG}_${TESTSUITE}.${TESTBENCH} -work ${WKDIR} ${lst} -o testbenchopt ${CoverageVoptArg}
|
vopt $accFlag wkdir/${CFG}_${TESTSUITE}.${TESTBENCH} -work ${WKDIR} ${lst} -o testbenchopt ${CoverageVoptArg}
|
||||||
|
|
||||||
# *** tbArgs producees a warning that TEST not found in design when running sim-testfloat-batch. Need to separate -G and + arguments to pass separately to vopt and vsim
|
|
||||||
vsim -lib ${WKDIR} testbenchopt +TEST=${TESTSUITE} ${PlusArgs} -fatal 7 ${SVLib} ${SVLibPath} ${OtherFlags} -suppress 3829 ${CoverageVsimArg}
|
vsim -lib ${WKDIR} testbenchopt +TEST=${TESTSUITE} ${PlusArgs} -fatal 7 ${SVLib} ${SVLibPath} ${OtherFlags} -suppress 3829 ${CoverageVsimArg}
|
||||||
# -sv_lib $env(IMPERAS_HOME)/lib/Linux64/ImperasLib/imperas.com/verification/riscv/1.0/model \
|
|
||||||
$env(OTHERFLAGS)
|
|
||||||
|
|
||||||
# vsim -lib wkdir/work_${1}_${2} testbenchopt -fatal 7 -suppress 3829
|
# vsim -lib wkdir/work_${1}_${2} testbenchopt -fatal 7 -suppress 3829
|
||||||
# power add generates the logging necessary for said generation.
|
# power add generates the logging necessary for said generation.
|
||||||
|
Loading…
Reference in New Issue
Block a user