mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	softfloat jobs now run concurrently with help of testfloat-batch.do directing compiled designs into individual folders for each config/test
This commit is contained in:
		
							parent
							
								
									19a61e301e
								
							
						
					
					
						commit
						02081cac40
					
				| @ -326,7 +326,7 @@ if (softfloat): | |||||||
|         divtest = TestCase( |         divtest = TestCase( | ||||||
|             name="div", |             name="div", | ||||||
|             variant=config, |             variant=config, | ||||||
|             cmd="vsim > {} -c  <<!\ndo testfloat.do " + config + " div \n!", |             cmd="vsim > {} -c  <<!\ndo testfloat-batch.do " + config + " div \n!", | ||||||
|             grepstr="All Tests completed with          0 errors" |             grepstr="All Tests completed with          0 errors" | ||||||
|         ) |         ) | ||||||
|         configs.append(divtest) |         configs.append(divtest) | ||||||
| @ -335,27 +335,30 @@ if (softfloat): | |||||||
|         sqrttest = TestCase( |         sqrttest = TestCase( | ||||||
|             name="sqrt", |             name="sqrt", | ||||||
|             variant=config, |             variant=config, | ||||||
|             cmd="vsim > {} -c  <<!\ndo testfloat.do " + config + " sqrt \n!", |             cmd="vsim > {} -c  <<!\ndo testfloat-batch.do " + config + " sqrt \n!", | ||||||
|             grepstr="All Tests completed with          0 errors" |             grepstr="All Tests completed with          0 errors" | ||||||
|         ) |         ) | ||||||
|         configs.append(sqrttest) |         #configs.append(sqrttest) | ||||||
|  |         configs.insert(0,sqrttest) | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
|         # skip if divider variant config |         # skip if divider variant config | ||||||
|         if ("ieee" in config[0]): |         if ("ieee" in config): | ||||||
|             # cvtint test case |             # cvtint test case | ||||||
|             cvtinttest = TestCase( |             cvtinttest = TestCase( | ||||||
|                 name="cvtint", |                 name="cvtint", | ||||||
|                 variant=config, |                 variant=config, | ||||||
|                 cmd="vsim > {} -c  <<!\ndo testfloat.do " + config + " cvtint \n!", |                 cmd="vsim > {} -c  <<!\ndo testfloat-batch.do " + config + " cvtint \n!", | ||||||
|                 grepstr="All Tests completed with          0 errors" |                 grepstr="All Tests completed with          0 errors" | ||||||
|                 ) |                 ) | ||||||
|             configs.append(cvtinttest) |             configs.append(cvtinttest) | ||||||
| 
 | 
 | ||||||
|             # cvtfp test case |             # cvtfp test case | ||||||
|  |             # WILL fail on F_only (cvtfp converts from one fpsize to another. refer to spec) | ||||||
|             cvtfptest = TestCase( |             cvtfptest = TestCase( | ||||||
|                 name="cvtfp", |                 name="cvtfp", | ||||||
|                 variant=config, |                 variant=config, | ||||||
|                 cmd="vsim > {} -c  <<!\ndo testfloat.do " + config + " cvtfp \n!", |                 cmd="vsim > {} -c  <<!\ndo testfloat-batch.do " + config + " cvtfp \n!", | ||||||
|                 grepstr="All Tests completed with          0 errors" |                 grepstr="All Tests completed with          0 errors" | ||||||
|             ) |             ) | ||||||
|             configs.append(cvtfptest)     |             configs.append(cvtfptest)     | ||||||
|  | |||||||
							
								
								
									
										55
									
								
								sim/testfloat-batch.do
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								sim/testfloat-batch.do
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,55 @@ | |||||||
|  | # testfloat-batch.do  | ||||||
|  | # | ||||||
|  | # Modification by Oklahoma State University & Harvey Mudd College | ||||||
|  | # Use with Testbench  | ||||||
|  | # James Stine, 2008; David Harris 2021; Kevin Kim 2024 | ||||||
|  | # Go Cowboys!!!!!! | ||||||
|  | # | ||||||
|  | # Takes 1:10 to run RV64IC tests using gui | ||||||
|  | 
 | ||||||
|  | # run with vsim -do "do wally.do rv64ic riscvarchtest-64m" | ||||||
|  | 
 | ||||||
|  | onbreak {resume} | ||||||
|  | 
 | ||||||
|  | # create library | ||||||
|  | 
 | ||||||
|  | if [file exists wkdir/work_${1}_${2}] { | ||||||
|  |     vdel -lib wkdir/work_${1}_${2} -all | ||||||
|  | } | ||||||
|  | vlib wkdir/work_${1}_${2} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # c# 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 | ||||||
|  | # $num = the added words after the call | ||||||
|  | 
 | ||||||
|  | vlog -lint -work wkdir/work_${1}_${2} +incdir+../config/$1 +incdir+../config/deriv/$1 +incdir+../config/shared ../src/cvw.sv ../testbench/testbench-fp.sv ../src/fpu/*.sv ../src/fpu/*/*.sv ../src/generic/*.sv  ../src/generic/flop/*.sv -suppress 2583,7063,8607,2697,7033  | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Set WAV variable to avoid having any output to wave (to limit disk space) | ||||||
|  | quietly set WAV 0; | ||||||
|  | 
 | ||||||
|  | # Determine if nowave argument is provided this removes any output to | ||||||
|  | # a wlf or wave window to reduce disk space. | ||||||
|  | if {$WAV eq 0} { | ||||||
|  |     puts "No wave output is selected" | ||||||
|  | } else { | ||||||
|  |     puts "wave output is selected" | ||||||
|  |     view wave | ||||||
|  |     add log -recursive /* | ||||||
|  |     do wave-fpu.do     | ||||||
|  | }   | ||||||
|  | 
 | ||||||
|  | # Change TEST_SIZE to only test certain FP width | ||||||
|  | # values are QP, DP, SP, HP or all for all tests | ||||||
|  | 
 | ||||||
|  | vopt +acc wkdir/work_${1}_${2}.testbenchfp -work wkdir/work_${1}_${2} -G TEST=$2 -G TEST_SIZE="all" -o testbenchopt | ||||||
|  | vsim -lib wkdir/work_${1}_${2} testbenchopt  -fatal 7 -suppress 3829 | ||||||
|  | #-- Run the Simulation  | ||||||
|  | run -all | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user