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
					
				
							
								
								
									
										3
									
								
								bin/wsim
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								bin/wsim
									
									
									
									
									
								
							@ -59,7 +59,10 @@ if (args.sim == "questa"):
 | 
			
		||||
    if (args.coverage):
 | 
			
		||||
        cmd += " --coverage"
 | 
			
		||||
    if (args.gui):  # launch Questa with GUI; add +acc to keep variables accessible
 | 
			
		||||
        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
 | 
			
		||||
        cmd = cd + "; vsim -c -do \"" + 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
 | 
			
		||||
# (omit the "-c" to see the GUI while running from the shell)
 | 
			
		||||
 | 
			
		||||
set DEBUG 0
 | 
			
		||||
set DEBUG 1
 | 
			
		||||
 | 
			
		||||
onbreak {resume}
 | 
			
		||||
onerror {quit -f}
 | 
			
		||||
@ -102,15 +102,17 @@ set LockStepIndex [lsearch -exact $lst "--lockstep"]
 | 
			
		||||
if {$LockStepIndex >= 0} {
 | 
			
		||||
    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 ImperasPubInc +incdir+$env(IMPERAS_HOME)/ImpPublic/include/host
 | 
			
		||||
    set ImperasPrivInc +incdir+$env(IMPERAS_HOME)/ImpProprietary/include/host
 | 
			
		||||
    set rvviFiles       $env(IMPERAS_HOME)/ImpPublic/source/host/rvvi/*.sv
 | 
			
		||||
    set idvFiles $env(IMPERAS_HOME)/ImpProprietary/source/host/idv/*.sv
 | 
			
		||||
 | 
			
		||||
    set SVLib "-sv_lib"
 | 
			
		||||
    set SVLibPath $env(IMPERAS_HOME)/lib/Linux64/ImperasLib/imperas.com/verification/riscv/1.0/model
 | 
			
		||||
    set OtherFlags $env(OTHERFLAGS)
 | 
			
		||||
 | 
			
		||||
    set lst [lreplace $lst $LockStepIndex $LockStepIndex]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -137,18 +139,13 @@ if {$DEBUG > 0} {
 | 
			
		||||
# "Extra checking for conflicts with always_comb done at vopt time"
 | 
			
		||||
# 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
 | 
			
		||||
 | 
			
		||||
# start and run simulation
 | 
			
		||||
# 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}
 | 
			
		||||
 | 
			
		||||
#  *** 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}
 | 
			
		||||
# -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
 | 
			
		||||
# power add generates the logging necessary for said generation.
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user