mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	VCS lockstep progress
This commit is contained in:
		
							parent
							
								
									6cf250821d
								
							
						
					
					
						commit
						4a3532bf5a
					
				
							
								
								
									
										4
									
								
								bin/wsim
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								bin/wsim
									
									
									
									
									
								
							@ -23,7 +23,7 @@ def LaunchSim(ElfFile, flags):
 | 
			
		||||
        # Questa cannot accept more than 9 arguments.  fcov implies lockstep
 | 
			
		||||
        if (args.tb == "testbench_fp"):
 | 
			
		||||
            args.args = " -GTEST=\"" + args.testsuite + "\" " + args.args
 | 
			
		||||
        cmd = "do wally.do " + args.config + " " + args.testsuite + " " + args.tb + " " + args.args + " " + ElfFile + " " + suffix + " " + flags
 | 
			
		||||
        cmd = "do wally.do " + args.config + " " + args.testsuite + " " + args.tb + " " + args.args + " " + ElfFile + " " + flags
 | 
			
		||||
        if (args.gui):  # launch Questa with GUI; add +acc to keep variables accessible
 | 
			
		||||
            if(args.tb == "testbench"): 
 | 
			
		||||
                cmd = cd + "; " + prefix + " vsim -do \"" + cmd + " +acc -GDEBUG=1\""
 | 
			
		||||
@ -114,7 +114,7 @@ else:
 | 
			
		||||
    prefix = ""
 | 
			
		||||
    ImperasPlusArgs = ""
 | 
			
		||||
    suffix = ""
 | 
			
		||||
flags = ImperasPlusArgs 
 | 
			
		||||
flags = suffix + " " + ImperasPlusArgs
 | 
			
		||||
 | 
			
		||||
# other flags
 | 
			
		||||
if (args.coverage):
 | 
			
		||||
 | 
			
		||||
@ -90,7 +90,7 @@ RTL_FILES="$INCLUDE_DIRS $(find ${SRC} -name "*.sv" ! -path "${SRC}/generic/mem/
 | 
			
		||||
 | 
			
		||||
# Simulation and Coverage Commands
 | 
			
		||||
OUTPUT="sim_out"
 | 
			
		||||
VCS_CMD="vcs +lint=all,noGCWM,noUI,noSVA-UA,noIDTS,noNS,noULCO,noCAWM-L,noWMIA-L,noSV-PIU,noSTASKW_CO,noSTASKW_CO1,noSTASKW_RMCOF -suppress +warn -sverilog +vc -Mupdate -line -full64 -lca +plusarg_save -ntb_opts sensitive_dyn ${INCLUDE_PATH} $RTL_FILES" # Disabled Debug flags; add them back for a GUI mode -debug_access+all+reverse  -kdb +vcs+vcdpluson 
 | 
			
		||||
VCS_CMD="vcs +lint=all,noGCWM,noUI,noSVA-UA,noIDTS,noNS,noULCO,noCAWM-L,noWMIA-L,noSV-PIU,noSTASKW_CO,noSTASKW_CO1,noSTASKW_RMCOF -suppress +warn -sverilog +vc -Mupdate -line -full64 -lca +plusarg_save -ntb_opts sensitive_dyn ${INCLUDE_PATH} " # Disabled Debug flags; add them back for a GUI mode -debug_access+all+reverse  -kdb +vcs+vcdpluson 
 | 
			
		||||
SIMV_CMD="./${WKDIR}/$OUTPUT +TEST=${TESTSUITE} ${PLUSARGS} -no_save" 
 | 
			
		||||
 | 
			
		||||
# Clean and run simulation with VCS
 | 
			
		||||
@ -99,18 +99,19 @@ if [ "$3" = "--coverage" ]; then
 | 
			
		||||
    echo -e "${YELLOW}#### Running VCS Simulation with Coverage ####${NC}"
 | 
			
		||||
    COV_OPTIONS="-cm line+cond+branch+fsm+tgl -cm_log ${WKDIR}/coverage.log -cm_dir ${WKDIR}/COVERAGE"
 | 
			
		||||
    COV_RUN="urg -dir ./${WKDIR}/COVERAGE.vdb -format text -report IndividualCovReport/${CONFIG_VARIANT}_${TESTSUITE}"
 | 
			
		||||
    $VCS_CMD -Mdir=${WKDIR} $COV_OPTIONS -o ${WKDIR}/$OUTPUT -Mlib ${WKDIR} -work ${WKDIR} -l "$LOGS/${CONFIG_VARIANT}_${TESTSUITE}.log"
 | 
			
		||||
    $VCS_CMD -Mdir=${WKDIR} $COV_OPTIONS $RTL_FILES -o ${WKDIR}/$OUTPUT -Mlib ${WKDIR} -work ${WKDIR} -l "$LOGS/${CONFIG_VARIANT}_${TESTSUITE}.log"
 | 
			
		||||
    $SIMV_CMD $COV_OPTIONS # dh 6/27/24 *** are COV_OPTIONS really needed?
 | 
			
		||||
    $COV_RUN
 | 
			
		||||
    #cp -rf urgReport $COV
 | 
			
		||||
elif [ "$3" = "--lockstep" ]; then
 | 
			
		||||
    echo -e "${YELLOW}#### Running VCS Simulation with Lockstep ####${NC}"
 | 
			
		||||
    LOCKSTEPVOPTSTRING=" +define+USE_IMPERAS_DV +incdir+$env(IMPERAS_HOME)/ImpPublic/include/host  +incdir+$env(IMPERAS_HOME)/ImpProprietary/include/host  ${IMPERAS_HOME}/ImpPublic/source/host/rvvi/*.sv ${IMPERAS_HOME}/ImpProprietary/source/host/idv/*.sv -sv_lib ${IMPERAS_HOME}/lib/Linux64/ImperasLib/imperas.com/verification/riscv/1.0/model "
 | 
			
		||||
    $VCS_CMD -Mdir=${WKDIR} $LOCKSTEP_OPTIONS -o ${WKDIR}/$OUTPUT -Mlib ${WKDIR} -work ${WKDIR} -l "$LOGS/${CONFIG_VARIANT}_${TESTSUITE}.log"
 | 
			
		||||
    $SIMV_CMD 
 | 
			
		||||
    LOCKSTEP_OPTIONS=" +define+USE_IMPERAS_DV +incdir+${IMPERAS_HOME}/ImpPublic/include/host  +incdir+${IMPERAS_HOME}/ImpProprietary/include/host  ${IMPERAS_HOME}/ImpPublic/source/host/rvvi/*.sv ${IMPERAS_HOME}/ImpProprietary/source/host/idv/*.sv ${TB}/common/wallyTracer.sv"
 | 
			
		||||
    LOCKSTEP_SIMV="-sv_lib ${IMPERAS_HOME}/lib/Linux64/ImperasLib/imperas.com/verification/riscv/1.0/model"
 | 
			
		||||
    $VCS_CMD -Mdir=${WKDIR} $LOCKSTEP_OPTIONS $RTL_FILES -o ${WKDIR}/$OUTPUT -Mlib ${WKDIR} -work ${WKDIR} -l "$LOGS/${CONFIG_VARIANT}_${TESTSUITE}.log"
 | 
			
		||||
    $SIMV_CMD $LOCKSTEP_SIMV
 | 
			
		||||
else
 | 
			
		||||
    echo -e "${YELLOW}#### Running VCS Simulation ####${NC}"
 | 
			
		||||
    $VCS_CMD -Mdir=${WKDIR} -o ${WKDIR}/$OUTPUT -work ${WKDIR} -Mlib ${WKDIR} -l "$LOGS/${CONFIG_VARIANT}_${TESTSUITE}.log"
 | 
			
		||||
    $VCS_CMD -Mdir=${WKDIR} $RTL_FILES -o ${WKDIR}/$OUTPUT -work ${WKDIR} -Mlib ${WKDIR} -l "$LOGS/${CONFIG_VARIANT}_${TESTSUITE}.log"
 | 
			
		||||
    $SIMV_CMD 
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user