mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	Merge branch 'main' of https://github.com/openhwgroup/cvw into dev
This commit is contained in:
		
						commit
						8b69400034
					
				| @ -4,14 +4,14 @@ | |||||||
| 
 | 
 | ||||||
| PORT_DIR = $(CURDIR)/riscv64-baremetal | PORT_DIR = $(CURDIR)/riscv64-baremetal | ||||||
| cmbase=../../addins/coremark | cmbase=../../addins/coremark | ||||||
| work_dir= ../../benchmarks/coremark/work | work_dir= ../benchmarks/coremark/work | ||||||
| XLEN ?=64 | XLEN ?=64 | ||||||
| sources=$(cmbase)/core_main.c $(cmbase)/core_list_join.c $(cmbase)/coremark.h  \
 | sources=$(cmbase)/core_main.c $(cmbase)/core_list_join.c $(cmbase)/coremark.h  \
 | ||||||
| 	$(cmbase)/core_matrix.c $(cmbase)/core_state.c $(cmbase)/core_util.c \
 | 	$(cmbase)/core_matrix.c $(cmbase)/core_state.c $(cmbase)/core_util.c \
 | ||||||
| 	$(PORT_DIR)/core_portme.h $(PORT_DIR)/core_portme.c $(PORT_DIR)/core_portme.mak \
 | 	$(PORT_DIR)/core_portme.h $(PORT_DIR)/core_portme.c $(PORT_DIR)/core_portme.mak \
 | ||||||
| 	$(PORT_DIR)/crt.S $(PORT_DIR)/encoding.h $(PORT_DIR)/util.h $(PORT_DIR)/syscalls.c | 	$(PORT_DIR)/crt.S $(PORT_DIR)/encoding.h $(PORT_DIR)/util.h $(PORT_DIR)/syscalls.c | ||||||
| ABI := $(if $(findstring "64","$(XLEN)"),lp64,ilp32) | ABI := $(if $(findstring "64","$(XLEN)"),lp64,ilp32) | ||||||
| ARCH := rv$(XLEN)im | ARCH := rv$(XLEN)gc | ||||||
| PORT_CFLAGS = -g -mabi=$(ABI) -march=$(ARCH) -static -falign-functions=16 \
 | PORT_CFLAGS = -g -mabi=$(ABI) -march=$(ARCH) -static -falign-functions=16 \
 | ||||||
| 	-mbranch-cost=1 -DSKIP_DEFAULT_MEMSET -mtune=sifive-3-series -O3 -finline-functions -falign-jumps=4 \
 | 	-mbranch-cost=1 -DSKIP_DEFAULT_MEMSET -mtune=sifive-3-series -O3 -finline-functions -falign-jumps=4 \
 | ||||||
| 	-fno-delete-null-pointer-checks -fno-rename-registers --param=loop-max-datarefs-for-datadeps=0 \
 | 	-fno-delete-null-pointer-checks -fno-rename-registers --param=loop-max-datarefs-for-datadeps=0 \
 | ||||||
| @ -23,7 +23,7 @@ all: $(work_dir)/coremark.bare.riscv.elf.memfile | |||||||
| 
 | 
 | ||||||
| run: | run: | ||||||
| 	(cd ../../sim && (time vsim -c -do "do wally-batch.do rv$(XLEN)gc coremark" 2>&1 | tee $(work_dir)/coremark.sim.log)) | 	(cd ../../sim && (time vsim -c -do "do wally-batch.do rv$(XLEN)gc coremark" 2>&1 | tee $(work_dir)/coremark.sim.log)) | ||||||
| 	cd ../benchmarks/coremark/ | #	cd ../benchmarks/coremark/
 | ||||||
| #	KMG: added post processing script to give out branch miss proportion along with other stats to the coremark test
 | #	KMG: added post processing script to give out branch miss proportion along with other stats to the coremark test
 | ||||||
| 	python3 coremark-postprocess.py | 	python3 coremark-postprocess.py | ||||||
| 
 | 
 | ||||||
| @ -33,7 +33,7 @@ $(work_dir)/coremark.bare.riscv.elf.memfile: $(work_dir)/coremark.bare.riscv | |||||||
| 	extractFunctionRadix.sh $<.elf.objdump | 	extractFunctionRadix.sh $<.elf.objdump | ||||||
| 
 | 
 | ||||||
| $(work_dir)/coremark.bare.riscv: $(sources) Makefile | $(work_dir)/coremark.bare.riscv: $(sources) Makefile | ||||||
| 	make -C $(cmbase) PORT_DIR=$(PORT_DIR) compile RISCV=$(RISCV)/riscv-gnu-toolchain XCFLAGS="$(PORT_CFLAGS)" | 	make -C $(cmbase) PORT_DIR=$(PORT_DIR) compile RISCV=$(RISCV) XCFLAGS="$(PORT_CFLAGS)" | ||||||
| 	mkdir -p $(work_dir) | 	mkdir -p $(work_dir) | ||||||
| 	mv $(cmbase)/coremark.bare.riscv $(work_dir) | 	mv $(cmbase)/coremark.bare.riscv $(work_dir) | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -37,6 +37,14 @@ for lineNum in range(len(logLines)): | |||||||
|         ICacheAccess = int(contents[-1]) |         ICacheAccess = int(contents[-1]) | ||||||
|         ICacheLineNum = lineNum + 2 |         ICacheLineNum = lineNum + 2 | ||||||
| 
 | 
 | ||||||
|  | # prevent division by zero | ||||||
|  | if (dCacheAccess == 0):  | ||||||
|  |     dCacheAccess = 1; | ||||||
|  | if (ICacheAccess == 0):  | ||||||
|  |     ICacheAccess = 1; | ||||||
|  | if (branchesTot == 0):  | ||||||
|  |     branchesTot = 1; | ||||||
|  | 
 | ||||||
| # need to add the number of previously added lines to the line number so that they stay in the intedned order. | # need to add the number of previously added lines to the line number so that they stay in the intedned order. | ||||||
| logLines.insert(dCacheLineNum, "# D-cache Hits " + str(dCacheAccess - dCacheMisses) + "\n") | logLines.insert(dCacheLineNum, "# D-cache Hits " + str(dCacheAccess - dCacheMisses) + "\n") | ||||||
| logLines.insert(dCacheLineNum+1, "# D-cache Miss Rate " + str(dCacheMisses / dCacheAccess) + "\n") | logLines.insert(dCacheLineNum+1, "# D-cache Miss Rate " + str(dCacheMisses / dCacheAccess) + "\n") | ||||||
|  | |||||||
| @ -125,7 +125,7 @@ | |||||||
| 
 | 
 | ||||||
| // division constants | // division constants | ||||||
| 
 | 
 | ||||||
| `define DIVN        (((`NF<`XLEN) & `IDIV_ON_FPU) ? `XLEN : `NF+2) // standard length of input | `define DIVN        ((((`NF+2)<`XLEN) & `IDIV_ON_FPU) ? `XLEN : `NF+2) // standard length of input | ||||||
| `define LOGR        ($clog2(`RADIX))            // r = log(R) | `define LOGR        ($clog2(`RADIX))            // r = log(R) | ||||||
| `define RK          (`LOGR*`DIVCOPIES)          // r*k used for intdiv preproc | `define RK          (`LOGR*`DIVCOPIES)          // r*k used for intdiv preproc | ||||||
| `define LOGRK       ($clog2(`RK))               // log2(r*k) | `define LOGRK       ($clog2(`RK))               // log2(r*k) | ||||||
|  | |||||||
							
								
								
									
										1
									
								
								setup.sh
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								setup.sh
									
									
									
									
									
								
							| @ -17,6 +17,7 @@ echo \$WALLY set to ${WALLY} | |||||||
| export MGLS_LICENSE_FILE=27002@zircon.eng.hmc.edu                   # Change this to your Siemens license server | export MGLS_LICENSE_FILE=27002@zircon.eng.hmc.edu                   # Change this to your Siemens license server | ||||||
| export SNPSLMD_LICENSE_FILE=27020@zircon.eng.hmc.edu                # Change this to your Synopsys license server | export SNPSLMD_LICENSE_FILE=27020@zircon.eng.hmc.edu                # Change this to your Synopsys license server | ||||||
| export QUESTA_HOME=/cad/mentor/questa_sim-2022.4_2/questasim        # Change this for your path to Questa, excluding bin | export QUESTA_HOME=/cad/mentor/questa_sim-2022.4_2/questasim        # Change this for your path to Questa, excluding bin | ||||||
|  | #export QUESTA_HOME=/cad/mentor/questa_sim-2022.4_3/questasim        # Change this for your path to Questa, excluding bin | ||||||
| export SNPS_HOME=/cad/synopsys/SYN                                  # Change this for your path to Design Compiler, excluding bin | export SNPS_HOME=/cad/synopsys/SYN                                  # Change this for your path to Design Compiler, excluding bin | ||||||
| 
 | 
 | ||||||
| # Path to RISC-V Tools | # Path to RISC-V Tools | ||||||
|  | |||||||
| @ -85,7 +85,7 @@ for test in tests64i: | |||||||
|   configs.append(tc) |   configs.append(tc) | ||||||
| 
 | 
 | ||||||
| tests32gcimperas = ["imperas32i", "imperas32f", "imperas32m", "imperas32c"] # unused | tests32gcimperas = ["imperas32i", "imperas32f", "imperas32m", "imperas32c"] # unused | ||||||
| tests32gc = ["arch32f", "arch32d", "arch32i", "arch32priv", "arch32c",  "arch32m", "arch32zi", "arch32zba", "arch32zbb", "arch32zbc", "arch32zbs", "wally32a",  "wally32priv", "wally32periph"]   | tests32gc = ["arch32f", "arch32d", "arch32f_fma", "arch32d_fma", "arch32i", "arch32priv", "arch32c",  "arch32m", "arch32zi", "arch32zba", "arch32zbb", "arch32zbc", "arch32zbs", "wally32a",  "wally32priv", "wally32periph"]   | ||||||
| for test in tests32gc: | for test in tests32gc: | ||||||
|   tc = TestCase( |   tc = TestCase( | ||||||
|         name=test, |         name=test, | ||||||
| @ -132,7 +132,7 @@ for test in ahbTests: | |||||||
|         grepstr="All tests ran without failures") |         grepstr="All tests ran without failures") | ||||||
|   configs.append(tc) |   configs.append(tc) | ||||||
| 
 | 
 | ||||||
| tests64gc = ["arch64f", "arch64d", "arch64i", "arch64zba", "arch64zbb", "arch64zbc", "arch64zbs",  | tests64gc = ["arch64f", "arch64d", "arch64f_fma", "arch64d_fma", "arch64i", "arch64zba", "arch64zbb", "arch64zbc", "arch64zbs",  | ||||||
|              "arch64priv", "arch64c",  "arch64m", "arch64zi", "wally64a", "wally64periph", "wally64priv"]  |              "arch64priv", "arch64c",  "arch64m", "arch64zi", "wally64a", "wally64periph", "wally64priv"]  | ||||||
| if (coverage):  # delete all but 64gc tests when running coverage | if (coverage):  # delete all but 64gc tests when running coverage | ||||||
|     configs = [] |     configs = [] | ||||||
|  | |||||||
| @ -93,6 +93,8 @@ module testbench; | |||||||
|         "arch64m":      if (`M_SUPPORTED)        tests = arch64m; |         "arch64m":      if (`M_SUPPORTED)        tests = arch64m; | ||||||
|         "arch64f":      if (`F_SUPPORTED)        tests = arch64f; |         "arch64f":      if (`F_SUPPORTED)        tests = arch64f; | ||||||
|         "arch64d":      if (`D_SUPPORTED)        tests = arch64d;   |         "arch64d":      if (`D_SUPPORTED)        tests = arch64d;   | ||||||
|  |         "arch64f_fma":      if (`F_SUPPORTED)        tests = arch64f_fma; | ||||||
|  |         "arch64d_fma":      if (`D_SUPPORTED)        tests = arch64d_fma;   | ||||||
|         "arch64zi":     if (`ZIFENCEI_SUPPORTED) tests = arch64zi; |         "arch64zi":     if (`ZIFENCEI_SUPPORTED) tests = arch64zi; | ||||||
|         "imperas64i":                            tests = imperas64i; |         "imperas64i":                            tests = imperas64i; | ||||||
|         "imperas64f":   if (`F_SUPPORTED)        tests = imperas64f; |         "imperas64f":   if (`F_SUPPORTED)        tests = imperas64f; | ||||||
| @ -124,6 +126,8 @@ module testbench; | |||||||
|         "arch32m":      if (`M_SUPPORTED)        tests = arch32m; |         "arch32m":      if (`M_SUPPORTED)        tests = arch32m; | ||||||
|         "arch32f":      if (`F_SUPPORTED)        tests = arch32f; |         "arch32f":      if (`F_SUPPORTED)        tests = arch32f; | ||||||
|         "arch32d":      if (`D_SUPPORTED)        tests = arch32d; |         "arch32d":      if (`D_SUPPORTED)        tests = arch32d; | ||||||
|  |         "arch32f_fma":      if (`F_SUPPORTED)        tests = arch32f_fma; | ||||||
|  |         "arch32d_fma":      if (`D_SUPPORTED)        tests = arch32d_fma; | ||||||
|         "arch32zi":     if (`ZIFENCEI_SUPPORTED) tests = arch32zi; |         "arch32zi":     if (`ZIFENCEI_SUPPORTED) tests = arch32zi; | ||||||
|         "imperas32i":                            tests = imperas32i; |         "imperas32i":                            tests = imperas32i; | ||||||
|         "imperas32f":   if (`F_SUPPORTED)        tests = imperas32f; |         "imperas32f":   if (`F_SUPPORTED)        tests = imperas32f; | ||||||
|  | |||||||
| @ -1066,6 +1066,14 @@ string imperas32f[] = '{ | |||||||
|     "rv64i_m/I/src/xori-01.S" |     "rv64i_m/I/src/xori-01.S" | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|  |   string arch64f_fma[] = '{ | ||||||
|  |     `RISCVARCHTEST, | ||||||
|  |     //"rv64i_m/F/src/fmadd_b15-01.S", | ||||||
|  |     "rv64i_m/F/src/fmsub_b15-01.S" | ||||||
|  |     // "rv64i_m/F/src/fnmadd_b15-01.S", | ||||||
|  |     // "rv64i_m/F/src/fnmsub_b15-01.S" | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|   string arch64f[] = '{ |   string arch64f[] = '{ | ||||||
|     `RISCVARCHTEST, |     `RISCVARCHTEST, | ||||||
|     "rv64i_m/F/src/fdiv_b1-01.S", |     "rv64i_m/F/src/fdiv_b1-01.S", | ||||||
| @ -1088,8 +1096,6 @@ string imperas32f[] = '{ | |||||||
|     "rv64i_m/F/src/fsqrt_b7-01.S", |     "rv64i_m/F/src/fsqrt_b7-01.S", | ||||||
|     "rv64i_m/F/src/fsqrt_b8-01.S", |     "rv64i_m/F/src/fsqrt_b8-01.S", | ||||||
|     "rv64i_m/F/src/fsqrt_b9-01.S", |     "rv64i_m/F/src/fsqrt_b9-01.S", | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|     "rv64i_m/F/src/fadd_b10-01.S", |     "rv64i_m/F/src/fadd_b10-01.S", | ||||||
|     "rv64i_m/F/src/fadd_b1-01.S", |     "rv64i_m/F/src/fadd_b1-01.S", | ||||||
|     "rv64i_m/F/src/fadd_b11-01.S", |     "rv64i_m/F/src/fadd_b11-01.S", | ||||||
| @ -1140,7 +1146,6 @@ string imperas32f[] = '{ | |||||||
|     "rv64i_m/F/src/flw-align-01.S", |     "rv64i_m/F/src/flw-align-01.S", | ||||||
|     "rv64i_m/F/src/fmadd_b1-01.S", |     "rv64i_m/F/src/fmadd_b1-01.S", | ||||||
|     "rv64i_m/F/src/fmadd_b14-01.S", |     "rv64i_m/F/src/fmadd_b14-01.S", | ||||||
|     //"rv64i_m/F/src/fmadd_b15-01.S", |  | ||||||
|     "rv64i_m/F/src/fmadd_b16-01.S", |     "rv64i_m/F/src/fmadd_b16-01.S", | ||||||
|     "rv64i_m/F/src/fmadd_b17-01.S", |     "rv64i_m/F/src/fmadd_b17-01.S", | ||||||
|     "rv64i_m/F/src/fmadd_b18-01.S", |     "rv64i_m/F/src/fmadd_b18-01.S", | ||||||
| @ -1157,7 +1162,6 @@ string imperas32f[] = '{ | |||||||
|     "rv64i_m/F/src/fmin_b19-01.S", |     "rv64i_m/F/src/fmin_b19-01.S", | ||||||
|     "rv64i_m/F/src/fmsub_b1-01.S", |     "rv64i_m/F/src/fmsub_b1-01.S", | ||||||
|     "rv64i_m/F/src/fmsub_b14-01.S", |     "rv64i_m/F/src/fmsub_b14-01.S", | ||||||
|     "rv64i_m/F/src/fmsub_b15-01.S", |  | ||||||
|     "rv64i_m/F/src/fmsub_b16-01.S", |     "rv64i_m/F/src/fmsub_b16-01.S", | ||||||
|     "rv64i_m/F/src/fmsub_b17-01.S", |     "rv64i_m/F/src/fmsub_b17-01.S", | ||||||
|     "rv64i_m/F/src/fmsub_b18-01.S", |     "rv64i_m/F/src/fmsub_b18-01.S", | ||||||
| @ -1188,7 +1192,6 @@ string imperas32f[] = '{ | |||||||
|     "rv64i_m/F/src/fmv.x.w_b29-01.S", |     "rv64i_m/F/src/fmv.x.w_b29-01.S", | ||||||
|     "rv64i_m/F/src/fnmadd_b1-01.S", |     "rv64i_m/F/src/fnmadd_b1-01.S", | ||||||
|     "rv64i_m/F/src/fnmadd_b14-01.S", |     "rv64i_m/F/src/fnmadd_b14-01.S", | ||||||
|     // "rv64i_m/F/src/fnmadd_b15-01.S", |  | ||||||
|     "rv64i_m/F/src/fnmadd_b16-01.S", |     "rv64i_m/F/src/fnmadd_b16-01.S", | ||||||
|     "rv64i_m/F/src/fnmadd_b17-01.S", |     "rv64i_m/F/src/fnmadd_b17-01.S", | ||||||
|     "rv64i_m/F/src/fnmadd_b18-01.S", |     "rv64i_m/F/src/fnmadd_b18-01.S", | ||||||
| @ -1201,7 +1204,6 @@ string imperas32f[] = '{ | |||||||
|     "rv64i_m/F/src/fnmadd_b8-01.S", |     "rv64i_m/F/src/fnmadd_b8-01.S", | ||||||
|     "rv64i_m/F/src/fnmsub_b1-01.S", |     "rv64i_m/F/src/fnmsub_b1-01.S", | ||||||
|     "rv64i_m/F/src/fnmsub_b14-01.S", |     "rv64i_m/F/src/fnmsub_b14-01.S", | ||||||
|     // "rv64i_m/F/src/fnmsub_b15-01.S", |  | ||||||
|     "rv64i_m/F/src/fnmsub_b16-01.S", |     "rv64i_m/F/src/fnmsub_b16-01.S", | ||||||
|     "rv64i_m/F/src/fnmsub_b17-01.S", |     "rv64i_m/F/src/fnmsub_b17-01.S", | ||||||
|     "rv64i_m/F/src/fnmsub_b18-01.S", |     "rv64i_m/F/src/fnmsub_b18-01.S", | ||||||
| @ -1238,6 +1240,13 @@ string imperas32f[] = '{ | |||||||
|     "rv64i_m/F/src/fsw-align-01.S" |     "rv64i_m/F/src/fsw-align-01.S" | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|  |   string arch64d_fma[] = '{ | ||||||
|  |     `RISCVARCHTEST, | ||||||
|  |     //"rv64i_m/D/src/fmadd.d_b15-01.S", | ||||||
|  |     //"rv64i_m/D/src/fmsub.d_b15-01.S", | ||||||
|  |      "rv64i_m/D/src/fnmadd.d_b15-01.S" | ||||||
|  |     // "rv64i_m/D/src/fnmsub.d_b15-01.S" | ||||||
|  |   }; | ||||||
| 
 | 
 | ||||||
|   string arch64d[] = '{ |   string arch64d[] = '{ | ||||||
|     `RISCVARCHTEST, |     `RISCVARCHTEST, | ||||||
| @ -1262,7 +1271,6 @@ string imperas32f[] = '{ | |||||||
|     "rv64i_m/D/src/fsqrt.d_b7-01.S", |     "rv64i_m/D/src/fsqrt.d_b7-01.S", | ||||||
|     "rv64i_m/D/src/fsqrt.d_b8-01.S", |     "rv64i_m/D/src/fsqrt.d_b8-01.S", | ||||||
|     "rv64i_m/D/src/fsqrt.d_b9-01.S", |     "rv64i_m/D/src/fsqrt.d_b9-01.S", | ||||||
| 
 |  | ||||||
|     "rv64i_m/D/src/fadd.d_b10-01.S", |     "rv64i_m/D/src/fadd.d_b10-01.S", | ||||||
|     "rv64i_m/D/src/fadd.d_b1-01.S", |     "rv64i_m/D/src/fadd.d_b1-01.S", | ||||||
|     "rv64i_m/D/src/fadd.d_b11-01.S", |     "rv64i_m/D/src/fadd.d_b11-01.S", | ||||||
| @ -1526,6 +1534,14 @@ string arch64zbs[] = '{ | |||||||
|     "rv32i_m/M/src/mulhu-01.S" |     "rv32i_m/M/src/mulhu-01.S" | ||||||
|    }; |    }; | ||||||
| 
 | 
 | ||||||
|  |   string arch32f_fma[] = '{ | ||||||
|  |     `RISCVARCHTEST, | ||||||
|  |     "rv32i_m/F/src/fmadd_b15-01.S" | ||||||
|  |     //"rv32i_m/F/src/fmsub_b15-01.S", | ||||||
|  |     // "rv32i_m/F/src/fnmadd_b15-01.S", | ||||||
|  |     // "rv32i_m/F/src/fnmsub_b15-01.S" | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|   string arch32f[] = '{ |   string arch32f[] = '{ | ||||||
|     `RISCVARCHTEST, |     `RISCVARCHTEST, | ||||||
|     "rv32i_m/F/src/fdiv_b20-01.S", |     "rv32i_m/F/src/fdiv_b20-01.S", | ||||||
| @ -1579,7 +1595,6 @@ string arch64zbs[] = '{ | |||||||
|     "rv32i_m/F/src/flw-align-01.S", |     "rv32i_m/F/src/flw-align-01.S", | ||||||
|     "rv32i_m/F/src/fmadd_b1-01.S", |     "rv32i_m/F/src/fmadd_b1-01.S", | ||||||
|     "rv32i_m/F/src/fmadd_b14-01.S", |     "rv32i_m/F/src/fmadd_b14-01.S", | ||||||
|     "rv32i_m/F/src/fmadd_b15-01.S", |  | ||||||
|     "rv32i_m/F/src/fmadd_b16-01.S", |     "rv32i_m/F/src/fmadd_b16-01.S", | ||||||
|     "rv32i_m/F/src/fmadd_b17-01.S", |     "rv32i_m/F/src/fmadd_b17-01.S", | ||||||
|     "rv32i_m/F/src/fmadd_b18-01.S", |     "rv32i_m/F/src/fmadd_b18-01.S", | ||||||
| @ -1596,7 +1611,6 @@ string arch64zbs[] = '{ | |||||||
|     "rv32i_m/F/src/fmin_b19-01.S", |     "rv32i_m/F/src/fmin_b19-01.S", | ||||||
|     "rv32i_m/F/src/fmsub_b1-01.S", |     "rv32i_m/F/src/fmsub_b1-01.S", | ||||||
|     "rv32i_m/F/src/fmsub_b14-01.S", |     "rv32i_m/F/src/fmsub_b14-01.S", | ||||||
|     //"rv32i_m/F/src/fmsub_b15-01.S", |  | ||||||
|     "rv32i_m/F/src/fmsub_b16-01.S", |     "rv32i_m/F/src/fmsub_b16-01.S", | ||||||
|     "rv32i_m/F/src/fmsub_b17-01.S", |     "rv32i_m/F/src/fmsub_b17-01.S", | ||||||
|     "rv32i_m/F/src/fmsub_b18-01.S", |     "rv32i_m/F/src/fmsub_b18-01.S", | ||||||
| @ -1627,7 +1641,6 @@ string arch64zbs[] = '{ | |||||||
|     "rv32i_m/F/src/fmv.x.w_b29-01.S", |     "rv32i_m/F/src/fmv.x.w_b29-01.S", | ||||||
|     "rv32i_m/F/src/fnmadd_b1-01.S", |     "rv32i_m/F/src/fnmadd_b1-01.S", | ||||||
|     "rv32i_m/F/src/fnmadd_b14-01.S", |     "rv32i_m/F/src/fnmadd_b14-01.S", | ||||||
|     // "rv32i_m/F/src/fnmadd_b15-01.S", |  | ||||||
|     "rv32i_m/F/src/fnmadd_b16-01.S", |     "rv32i_m/F/src/fnmadd_b16-01.S", | ||||||
|     "rv32i_m/F/src/fnmadd_b17-01.S", |     "rv32i_m/F/src/fnmadd_b17-01.S", | ||||||
|     "rv32i_m/F/src/fnmadd_b18-01.S", |     "rv32i_m/F/src/fnmadd_b18-01.S", | ||||||
| @ -1640,7 +1653,6 @@ string arch64zbs[] = '{ | |||||||
|     "rv32i_m/F/src/fnmadd_b8-01.S", |     "rv32i_m/F/src/fnmadd_b8-01.S", | ||||||
|     "rv32i_m/F/src/fnmsub_b1-01.S", |     "rv32i_m/F/src/fnmsub_b1-01.S", | ||||||
|     "rv32i_m/F/src/fnmsub_b14-01.S", |     "rv32i_m/F/src/fnmsub_b14-01.S", | ||||||
|     // "rv32i_m/F/src/fnmsub_b15-01.S", |  | ||||||
|     "rv32i_m/F/src/fnmsub_b16-01.S", |     "rv32i_m/F/src/fnmsub_b16-01.S", | ||||||
|     "rv32i_m/F/src/fnmsub_b17-01.S", |     "rv32i_m/F/src/fnmsub_b17-01.S", | ||||||
|     "rv32i_m/F/src/fnmsub_b18-01.S", |     "rv32i_m/F/src/fnmsub_b18-01.S", | ||||||
| @ -1677,6 +1689,14 @@ string arch64zbs[] = '{ | |||||||
|     "rv32i_m/F/src/fsw-align-01.S" |     "rv32i_m/F/src/fsw-align-01.S" | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|  |   string arch32d_fma[] = '{ | ||||||
|  |     `RISCVARCHTEST, | ||||||
|  |     //"rv32i_m/D/src/fmadd.d_b15-01.S", | ||||||
|  |     //"rv32i_m/D/src/fmsub.d_b15-01.S", | ||||||
|  |     // "rv32i_m/D/src/fnmadd.d_b15-01.S", | ||||||
|  |     "rv32i_m/D/src/fnmsub.d_b15-01.S" | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|   string arch32d[] = '{ |   string arch32d[] = '{ | ||||||
|     `RISCVARCHTEST, |     `RISCVARCHTEST, | ||||||
|     "rv32i_m/D/src/fadd.d_b10-01.S", |     "rv32i_m/D/src/fadd.d_b10-01.S", | ||||||
|  | |||||||
| @ -22,7 +22,7 @@ | |||||||
| /////////////////////////////////////////// | /////////////////////////////////////////// | ||||||
| 
 | 
 | ||||||
| #include "WALLY-TEST-LIB-32.h"  | #include "WALLY-TEST-LIB-32.h"  | ||||||
| RVTEST_ISA("RV32I_Zicsr") | RVTEST_ISA("RV32I_Zicsr_Zifencei") | ||||||
| RVTEST_CASE(0,"//check ISA:=regex(.*32.*);check ISA:=regex(.*I.*); def Drvtest_mtrap_routine=True;def TEST_CASE_1=True;def NO_SAIL=True;",clint) 
 | RVTEST_CASE(0,"//check ISA:=regex(.*32.*);check ISA:=regex(.*I.*); def Drvtest_mtrap_routine=True;def TEST_CASE_1=True;def NO_SAIL=True;",clint) 
 | ||||||
| 
 | 
 | ||||||
| INIT_TESTS | INIT_TESTS | ||||||
|  | |||||||
| @ -23,7 +23,7 @@ | |||||||
| 
 | 
 | ||||||
| #include "WALLY-TEST-LIB-32.h"  | #include "WALLY-TEST-LIB-32.h"  | ||||||
| 
 | 
 | ||||||
| RVTEST_ISA("RV32I_Zicsr") | RVTEST_ISA("RV32I_Zicsr_Zifencei") | ||||||
| RVTEST_CASE(0,"//check ISA:=regex(.*32.*);check ISA:=regex(.*I.*); def Drvtest_mtrap_routine=True;def TEST_CASE_1=True;def NO_SAIL=True;",gpio)
 | RVTEST_CASE(0,"//check ISA:=regex(.*32.*);check ISA:=regex(.*I.*); def Drvtest_mtrap_routine=True;def TEST_CASE_1=True;def NO_SAIL=True;",gpio)
 | ||||||
| 
 | 
 | ||||||
| INIT_TESTS | INIT_TESTS | ||||||
|  | |||||||
| @ -23,7 +23,7 @@ | |||||||
| 
 | 
 | ||||||
| #include "WALLY-TEST-LIB-32.h"  | #include "WALLY-TEST-LIB-32.h"  | ||||||
| 
 | 
 | ||||||
| RVTEST_ISA("RV32I_Zicsr") | RVTEST_ISA("RV32I_Zicsr_Zifencei") | ||||||
| RVTEST_CASE(0,"//check ISA:=regex(.*32.*);check ISA:=regex(.*I.*); def Drvtest_mtrap_routine=True;def TEST_CASE_1=True; def NO_SAIL=True;",mmu)
 | RVTEST_CASE(0,"//check ISA:=regex(.*32.*);check ISA:=regex(.*I.*); def Drvtest_mtrap_routine=True;def TEST_CASE_1=True; def NO_SAIL=True;",mmu)
 | ||||||
| 
 | 
 | ||||||
| INIT_TESTS | INIT_TESTS | ||||||
|  | |||||||
| @ -23,7 +23,7 @@ | |||||||
| 
 | 
 | ||||||
| #include "WALLY-TEST-LIB-32.h"  | #include "WALLY-TEST-LIB-32.h"  | ||||||
| 
 | 
 | ||||||
| RVTEST_ISA("RV32I_Zicsr") | RVTEST_ISA("RV32I_Zicsr_Zifencei") | ||||||
| RVTEST_CASE(0,"//check ISA:=regex(.*32.*);check ISA:=regex(.*I.*); def Drvtest_mtrap_routine=True;def TEST_CASE_1=True;def NO_SAIL=True;",plic)
 | RVTEST_CASE(0,"//check ISA:=regex(.*32.*);check ISA:=regex(.*I.*); def Drvtest_mtrap_routine=True;def TEST_CASE_1=True;def NO_SAIL=True;",plic)
 | ||||||
| 
 | 
 | ||||||
| INIT_TESTS | INIT_TESTS | ||||||
|  | |||||||
| @ -24,7 +24,7 @@ | |||||||
| 
 | 
 | ||||||
| #include "WALLY-TEST-LIB-32.h"  | #include "WALLY-TEST-LIB-32.h"  | ||||||
| 
 | 
 | ||||||
| RVTEST_ISA("RV32I_Zicsr") | RVTEST_ISA("RV32I_Zicsr_Zifencei") | ||||||
| RVTEST_CASE(0,"//check ISA:=regex(.*32.*);check ISA:=regex(.*I.*); def Drvtest_mtrap_routine=True;def TEST_CASE_1=True;def NO_SAIL=True;",plic-s)
 | RVTEST_CASE(0,"//check ISA:=regex(.*32.*);check ISA:=regex(.*I.*); def Drvtest_mtrap_routine=True;def TEST_CASE_1=True;def NO_SAIL=True;",plic-s)
 | ||||||
| 
 | 
 | ||||||
| INIT_TESTS | INIT_TESTS | ||||||
|  | |||||||
| @ -36,7 +36,7 @@ | |||||||
| 
 | 
 | ||||||
| #include "WALLY-TEST-LIB-32.h"  | #include "WALLY-TEST-LIB-32.h"  | ||||||
| 
 | 
 | ||||||
| RVTEST_ISA("RV32I_Zicsr") | RVTEST_ISA("RV32I_Zicsr_Zifencei") | ||||||
| RVTEST_CASE(0,"//check ISA:=regex(.*32.*);check ISA:=regex(.*I.*); def Drvtest_mtrap_routine=True;def TEST_CASE_1=True;def NO_SAIL=True;",pma)
 | RVTEST_CASE(0,"//check ISA:=regex(.*32.*);check ISA:=regex(.*I.*); def Drvtest_mtrap_routine=True;def TEST_CASE_1=True;def NO_SAIL=True;",pma)
 | ||||||
| 
 | 
 | ||||||
| INIT_TESTS | INIT_TESTS | ||||||
|  | |||||||
| @ -23,7 +23,7 @@ | |||||||
| 
 | 
 | ||||||
| #include "WALLY-TEST-LIB-32.h"  | #include "WALLY-TEST-LIB-32.h"  | ||||||
| 
 | 
 | ||||||
| RVTEST_ISA("RV32I_Zicsr") | RVTEST_ISA("RV32I_Zicsr_Zifencei") | ||||||
| RVTEST_CASE(0,"//check ISA:=regex(.*32.*);check ISA:=regex(.*I.*); def Drvtest_mtrap_routine=True;def TEST_CASE_1=True;def NO_SAIL=True;",pmp)
 | RVTEST_CASE(0,"//check ISA:=regex(.*32.*);check ISA:=regex(.*I.*); def Drvtest_mtrap_routine=True;def TEST_CASE_1=True;def NO_SAIL=True;",pmp)
 | ||||||
| 
 | 
 | ||||||
| INIT_TESTS | INIT_TESTS | ||||||
|  | |||||||
| @ -23,7 +23,7 @@ | |||||||
| 
 | 
 | ||||||
| #include "WALLY-TEST-LIB-32.h"  | #include "WALLY-TEST-LIB-32.h"  | ||||||
| 
 | 
 | ||||||
| RVTEST_ISA("RV32I_Zicsr") | RVTEST_ISA("RV32I_Zicsr_Zifencei") | ||||||
| RVTEST_CASE(0,"//check ISA:=regex(.*32.*);check ISA:=regex(.*I.*); def Drvtest_mtrap_routine=True;def TEST_CASE_1=True;def NO_SAIL=True;",uart)
 | RVTEST_CASE(0,"//check ISA:=regex(.*32.*);check ISA:=regex(.*I.*); def Drvtest_mtrap_routine=True;def TEST_CASE_1=True;def NO_SAIL=True;",uart)
 | ||||||
| 
 | 
 | ||||||
| INIT_TESTS | INIT_TESTS | ||||||
|  | |||||||
| @ -24,7 +24,7 @@ | |||||||
| 
 | 
 | ||||||
| #include "WALLY-TEST-LIB-32.h"  | #include "WALLY-TEST-LIB-32.h"  | ||||||
| 
 | 
 | ||||||
| RVTEST_ISA("RV32I_Zicsr") | RVTEST_ISA("RV32I_Zicsr_Zifencei") | ||||||
| RVTEST_CASE(0,"//check ISA:=regex(.*32.*);check ISA:=regex(.*I.*); def Drvtest_mtrap_routine=True;def TEST_CASE_1=True;def NO_SAIL=True;",uart-timeout)
 | RVTEST_CASE(0,"//check ISA:=regex(.*32.*);check ISA:=regex(.*I.*); def Drvtest_mtrap_routine=True;def TEST_CASE_1=True;def NO_SAIL=True;",uart-timeout)
 | ||||||
| 
 | 
 | ||||||
| .equ UART, 0x10000000 | .equ UART, 0x10000000 | ||||||
|  | |||||||
| @ -22,7 +22,7 @@ | |||||||
| /////////////////////////////////////////// | /////////////////////////////////////////// | ||||||
| 
 | 
 | ||||||
| #include "WALLY-TEST-LIB-64.h"  | #include "WALLY-TEST-LIB-64.h"  | ||||||
| RVTEST_ISA("RV64I") | RVTEST_ISA("RV64I_Zicsr_Zifencei") | ||||||
| RVTEST_CASE(0,"//check ISA:=regex(.*64.*);check ISA:=regex(.*I.*); def Drvtest_mtrap_routine=True;def TEST_CASE_1=True;def NO_SAIL=True;",clint) 
 | RVTEST_CASE(0,"//check ISA:=regex(.*64.*);check ISA:=regex(.*I.*); def Drvtest_mtrap_routine=True;def TEST_CASE_1=True;def NO_SAIL=True;",clint) 
 | ||||||
| 
 | 
 | ||||||
| INIT_TESTS | INIT_TESTS | ||||||
|  | |||||||
| @ -23,7 +23,7 @@ | |||||||
| 
 | 
 | ||||||
| #include "WALLY-TEST-LIB-64.h"  | #include "WALLY-TEST-LIB-64.h"  | ||||||
| 
 | 
 | ||||||
| RVTEST_ISA("RV64I_Zicsr") | RVTEST_ISA("RV64I_Zicsr_Zifencei") | ||||||
| RVTEST_CASE(0,"//check ISA:=regex(.*64.*);check ISA:=regex(.*I.*); def Drvtest_mtrap_routine=True;def TEST_CASE_1=True;def NO_SAIL=True;",gpio)
 | RVTEST_CASE(0,"//check ISA:=regex(.*64.*);check ISA:=regex(.*I.*); def Drvtest_mtrap_routine=True;def TEST_CASE_1=True;def NO_SAIL=True;",gpio)
 | ||||||
| 
 | 
 | ||||||
| INIT_TESTS | INIT_TESTS | ||||||
|  | |||||||
| @ -22,7 +22,7 @@ | |||||||
| /////////////////////////////////////////// | /////////////////////////////////////////// | ||||||
| 
 | 
 | ||||||
| #include "WALLY-TEST-LIB-64.h"  | #include "WALLY-TEST-LIB-64.h"  | ||||||
| RVTEST_ISA("RV64I_Zicsr") | RVTEST_ISA("RV64I_Zicsr_Zifencei") | ||||||
| RVTEST_CASE(0,"//check ISA:=regex(.*64.*);check ISA:=regex(.*I.*);def TEST_CASE_1=True;def NO_SAIL=True",mmu-sv39)
 | RVTEST_CASE(0,"//check ISA:=regex(.*64.*);check ISA:=regex(.*I.*);def TEST_CASE_1=True;def NO_SAIL=True",mmu-sv39)
 | ||||||
| 
 | 
 | ||||||
| INIT_TESTS | INIT_TESTS | ||||||
|  | |||||||
| @ -22,7 +22,7 @@ | |||||||
| /////////////////////////////////////////// | /////////////////////////////////////////// | ||||||
| 
 | 
 | ||||||
| #include "WALLY-TEST-LIB-64.h"  | #include "WALLY-TEST-LIB-64.h"  | ||||||
| RVTEST_ISA("RV64I_Zicsr") | RVTEST_ISA("RV64I_Zicsr_Zifencei") | ||||||
| RVTEST_CASE(0,"//check ISA:=regex(.*64.*);check ISA:=regex(.*I.*);def TEST_CASE_1=True;def NO_SAIL=True",sv48)
 | RVTEST_CASE(0,"//check ISA:=regex(.*64.*);check ISA:=regex(.*I.*);def TEST_CASE_1=True;def NO_SAIL=True",sv48)
 | ||||||
| 
 | 
 | ||||||
| INIT_TESTS | INIT_TESTS | ||||||
|  | |||||||
| @ -23,7 +23,7 @@ | |||||||
| 
 | 
 | ||||||
| #include "WALLY-TEST-LIB-64.h"  | #include "WALLY-TEST-LIB-64.h"  | ||||||
| 
 | 
 | ||||||
| RVTEST_ISA("RV64I_Zicsr") | RVTEST_ISA("RV64I_Zicsr_Zifencei") | ||||||
| RVTEST_CASE(0,"//check ISA:=regex(.*64.*);check ISA:=regex(.*I.*); def Drvtest_mtrap_routine=True;def TEST_CASE_1=True;def NO_SAIL=True;",plic)
 | RVTEST_CASE(0,"//check ISA:=regex(.*64.*);check ISA:=regex(.*I.*); def Drvtest_mtrap_routine=True;def TEST_CASE_1=True;def NO_SAIL=True;",plic)
 | ||||||
| 
 | 
 | ||||||
| INIT_TESTS | INIT_TESTS | ||||||
|  | |||||||
| @ -24,7 +24,7 @@ | |||||||
| 
 | 
 | ||||||
| #include "WALLY-TEST-LIB-64.h"  | #include "WALLY-TEST-LIB-64.h"  | ||||||
| 
 | 
 | ||||||
| RVTEST_ISA("RV64I_Zicsr") | RVTEST_ISA("RV64I_Zicsr_Zifencei") | ||||||
| RVTEST_CASE(0,"//check ISA:=regex(.*64.*);check ISA:=regex(.*I.*); def Drvtest_mtrap_routine=True;def TEST_CASE_1=True;def NO_SAIL=True;",plic-s)
 | RVTEST_CASE(0,"//check ISA:=regex(.*64.*);check ISA:=regex(.*I.*); def Drvtest_mtrap_routine=True;def TEST_CASE_1=True;def NO_SAIL=True;",plic-s)
 | ||||||
| 
 | 
 | ||||||
| INIT_TESTS | INIT_TESTS | ||||||
|  | |||||||
| @ -35,7 +35,7 @@ | |||||||
| #define PLIC_RANGE     0x03FFFFFF | #define PLIC_RANGE     0x03FFFFFF | ||||||
| 
 | 
 | ||||||
| #include "WALLY-TEST-LIB-64.h"  | #include "WALLY-TEST-LIB-64.h"  | ||||||
| RVTEST_ISA("RV64I_Zicsr") | RVTEST_ISA("RV64I_Zicsr_Zifencei") | ||||||
| RVTEST_CASE(0,"//check ISA:=regex(.*64.*);check ISA:=regex(.*I.*);def TEST_CASE_1=True;def NO_SAIL=True;",pma)
 | RVTEST_CASE(0,"//check ISA:=regex(.*64.*);check ISA:=regex(.*I.*);def TEST_CASE_1=True;def NO_SAIL=True;",pma)
 | ||||||
| 
 | 
 | ||||||
| INIT_TESTS | INIT_TESTS | ||||||
|  | |||||||
| @ -22,7 +22,7 @@ | |||||||
| /////////////////////////////////////////// | /////////////////////////////////////////// | ||||||
| 
 | 
 | ||||||
| #include "WALLY-TEST-LIB-64.h"  | #include "WALLY-TEST-LIB-64.h"  | ||||||
| RVTEST_ISA("RV64I_Zicsr") | RVTEST_ISA("RV64I_Zicsr_Zifencei") | ||||||
| RVTEST_CASE(0,"//check ISA:=regex(.*64.*);check ISA:=regex(.*I.*);def TEST_CASE_1=True;def NO_SAIL=True;",pmp)
 | RVTEST_CASE(0,"//check ISA:=regex(.*64.*);check ISA:=regex(.*I.*);def TEST_CASE_1=True;def NO_SAIL=True;",pmp)
 | ||||||
| 
 | 
 | ||||||
| INIT_TESTS | INIT_TESTS | ||||||
|  | |||||||
| @ -23,7 +23,7 @@ | |||||||
| 
 | 
 | ||||||
| #include "WALLY-TEST-LIB-64.h"  | #include "WALLY-TEST-LIB-64.h"  | ||||||
| 
 | 
 | ||||||
| RVTEST_ISA("RV64I_Zicsr") | RVTEST_ISA("RV64I_Zicsr_Zifencei") | ||||||
| RVTEST_CASE(0,"//check ISA:=regex(.*64.*);check ISA:=regex(.*I.*); def Drvtest_mtrap_routine=True;def TEST_CASE_1=True;def NO_SAIL=True;",uart)
 | RVTEST_CASE(0,"//check ISA:=regex(.*64.*);check ISA:=regex(.*I.*); def Drvtest_mtrap_routine=True;def TEST_CASE_1=True;def NO_SAIL=True;",uart)
 | ||||||
| 
 | 
 | ||||||
| INIT_TESTS | INIT_TESTS | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user