forked from Github_Repos/cvw
		
	Modified wally-pipelined-batch.do to handle buildroot
This commit is contained in:
		
							parent
							
								
									72bc64ef28
								
							
						
					
					
						commit
						66b4834ef5
					
				@ -48,17 +48,17 @@ def getBuildrootTC(short):
 | 
				
			|||||||
    INSTR_LIMIT = 100000 # multiple of 100000
 | 
					    INSTR_LIMIT = 100000 # multiple of 100000
 | 
				
			||||||
    MAX_EXPECTED = 246000000
 | 
					    MAX_EXPECTED = 246000000
 | 
				
			||||||
    if short:
 | 
					    if short:
 | 
				
			||||||
        BRcmd="vsim > {} -c <<!\ndo wally-buildroot-batch.do "+str(INSTR_LIMIT)+" 1 0\n!"
 | 
					        BRcmd="vsim > {} -c <<!\ndo wally-pipelined-batch.do buildroot buildroot "+str(INSTR_LIMIT)+" 1 0\n!"
 | 
				
			||||||
        BRgrepstr=str(INSTR_LIMIT)+" instructions"
 | 
					        BRgrepstr=str(INSTR_LIMIT)+" instructions"
 | 
				
			||||||
    else:
 | 
					    else:
 | 
				
			||||||
        BRcmd="vsim > {} -c <<!\ndo wally-buildroot-batch.do 0 1 0\n!"
 | 
					        BRcmd="vsim > {} -c <<!\ndo wally-pipelined-batch.do buildroot buildroot 0 1 0\n!"
 | 
				
			||||||
        BRgrepstr=str(MAX_EXPECTED)+" instructions"
 | 
					        BRgrepstr=str(MAX_EXPECTED)+" instructions"
 | 
				
			||||||
    return  TestCase(name="buildroot",variant="rv64gc",cmd=BRcmd,grepstr=BRgrepstr)
 | 
					    return  TestCase(name="buildroot",variant="rv64gc",cmd=BRcmd,grepstr=BRgrepstr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
tc = TestCase(
 | 
					tc = TestCase(
 | 
				
			||||||
      name="buildroot-checkpoint",
 | 
					      name="buildroot-checkpoint",
 | 
				
			||||||
      variant="rv64gc",
 | 
					      variant="rv64gc",
 | 
				
			||||||
      cmd="vsim > {} -c <<!\ndo wally-buildroot-batch.do 400100000 400000001 400000000\n!",
 | 
					      cmd="vsim > {} -c <<!\ndo wally-pipelined-batch.do buildroot buildroot-checkpoint 400100000 400000001 400000000\n!",
 | 
				
			||||||
      grepstr="400100000 instructions")
 | 
					      grepstr="400100000 instructions")
 | 
				
			||||||
configs.append(tc)
 | 
					configs.append(tc)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -30,6 +30,10 @@ echo "INSTR_LIMIT  = ${INSTR_LIMIT}"
 | 
				
			|||||||
echo "INSTR_WAVEON = ${INSTR_WAVEON}"
 | 
					echo "INSTR_WAVEON = ${INSTR_WAVEON}"
 | 
				
			||||||
echo "CHECKPOINT   = ${CHECKPOINT}"
 | 
					echo "CHECKPOINT   = ${CHECKPOINT}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#vsim -c <<!
 | 
				
			||||||
 | 
					#do wally-buildroot-batch.do $INSTR_LIMIT $INSTR_WAVEON $CHECKPOINT
 | 
				
			||||||
 | 
					#!
 | 
				
			||||||
 | 
					# *** change config from buildroot to rv64gc
 | 
				
			||||||
vsim -c <<!
 | 
					vsim -c <<!
 | 
				
			||||||
do wally-buildroot-batch.do $INSTR_LIMIT $INSTR_WAVEON $CHECKPOINT
 | 
					do wally-pipelined-batch.do buildroot buildroot $INSTR_LIMIT $INSTR_WAVEON $CHECKPOINT
 | 
				
			||||||
!
 | 
					!
 | 
				
			||||||
@ -1,3 +1,3 @@
 | 
				
			|||||||
vsim -c <<!
 | 
					vsim -c <<!
 | 
				
			||||||
do wally-pipelined-batch.do rv32e wally32e
 | 
					do wally-pipelined-batch.do rv32gc arch32priv
 | 
				
			||||||
!
 | 
					!
 | 
				
			||||||
 | 
				
			|||||||
@ -32,19 +32,31 @@ vlib work_${1}_${2}
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# default to config/rv64ic, but allow this to be overridden at the command line.  For example:
 | 
					# default to config/rv64ic, but allow this to be overridden at the command line.  For example:
 | 
				
			||||||
# do wally-pipelined-batch.do ../config/rv32ic rv32ic
 | 
					# do wally-pipelined-batch.do ../config/rv32ic rv32ic
 | 
				
			||||||
vlog -lint -work work_${1}_${2} +incdir+../config/$1 +incdir+../config/shared ../testbench/testbench.sv ../testbench/common/*.sv   ../src/*/*.sv ../src/*/*/*.sv -suppress 2583 -suppress 7063
 | 
					if {$2 eq "buildroot" || $2 eq "buildroot-checkpoint"} {
 | 
				
			||||||
 | 
					    vlog -lint -work work_${1}_${2} +incdir+../config/$1 +incdir+../config/shared ../testbench/testbench-linux.sv ../testbench/common/*.sv ../src/*/*.sv ../src/*/*/*.sv -suppress 2583
 | 
				
			||||||
 | 
					    # start and run simulation
 | 
				
			||||||
 | 
					    vopt work_${1}_${2}.testbench -work work_${1}_${2} -G INSTR_LIMIT=$3 -G INSTR_WAVEON=$4 -G CHECKPOINT=$5 -o testbenchopt 
 | 
				
			||||||
 | 
					    vsim -lib work_${1}_${2} testbenchopt -suppress 8852,12070
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# start and run simulation
 | 
					    run -all
 | 
				
			||||||
# remove +acc flag for faster sim during regressions if there is no need to access internal signals
 | 
					    run -all
 | 
				
			||||||
vopt work_${1}_${2}.testbench -work work_${1}_${2} -G TEST=$2 -o testbenchopt
 | 
					    exec ./slack-notifier/slack-notifier.py
 | 
				
			||||||
vsim -lib work_${1}_${2} testbenchopt 
 | 
					    quit 
 | 
				
			||||||
# Adding coverage increases runtime from 2:00 to 4:29.  Can't run it all the time
 | 
					} else {
 | 
				
			||||||
#vopt work_$2.testbench -work work_$2 -o workopt_$2 +cover=sbectf
 | 
					    vlog -lint -work work_${1}_${2} +incdir+../config/$1 +incdir+../config/shared ../testbench/testbench.sv ../testbench/common/*.sv   ../src/*/*.sv ../src/*/*/*.sv -suppress 2583 -suppress 7063
 | 
				
			||||||
#vsim -coverage -lib work_$2 workopt_$2
 | 
					    # start and run simulation
 | 
				
			||||||
 | 
					    # remove +acc flag for faster sim during regressions if there is no need to access internal signals
 | 
				
			||||||
 | 
					    vopt work_${1}_${2}.testbench -work work_${1}_${2} -G TEST=$2 -o testbenchopt
 | 
				
			||||||
 | 
					    vsim -lib work_${1}_${2} testbenchopt 
 | 
				
			||||||
 | 
					    # Adding coverage increases runtime from 2:00 to 4:29.  Can't run it all the time
 | 
				
			||||||
 | 
					    #vopt work_$2.testbench -work work_$2 -o workopt_$2 +cover=sbectf
 | 
				
			||||||
 | 
					    #vsim -coverage -lib work_$2 workopt_$2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    run -all
 | 
				
			||||||
 | 
					    quit
 | 
				
			||||||
 | 
					} 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
run -all
 | 
					 | 
				
			||||||
#coverage report -file wally-pipelined-coverage.txt
 | 
					#coverage report -file wally-pipelined-coverage.txt
 | 
				
			||||||
# These aren't doing anything helpful
 | 
					# These aren't doing anything helpful
 | 
				
			||||||
#coverage report -memory 
 | 
					#coverage report -memory 
 | 
				
			||||||
#profile report -calltree -file wally-pipelined-calltree.rpt -cutoff 2
 | 
					#profile report -calltree -file wally-pipelined-calltree.rpt -cutoff 2
 | 
				
			||||||
quit
 | 
					 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user