Initial commit
This commit is contained in:
		
							
								
								
									
										63
									
								
								Libs/RiscV_test/NEORV32_test/run_riscv_arch_test.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								Libs/RiscV_test/NEORV32_test/run_riscv_arch_test.sh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,63 @@ | ||||
| #!/usr/bin/env bash | ||||
|  | ||||
| # Abort if any command returns != 0 | ||||
| set -e | ||||
|  | ||||
| cd $(dirname "$0") | ||||
|  | ||||
| header() { | ||||
|   echo "--------------------------------------------------------------------------" | ||||
|   echo "> $@..." | ||||
|   echo "--------------------------------------------------------------------------" | ||||
| } | ||||
|  | ||||
| RISCV_PREFIX="${RISCV_PREFIX:-riscv32-unknown-elf-}" | ||||
|  | ||||
| header "Checking RISC-V GCC toolchain" | ||||
| "$RISCV_PREFIX"gcc -v | ||||
|  | ||||
| header "Checking 'riscv-arch-test' GitHub repository (submodule)" | ||||
| git submodule update --init | ||||
|  | ||||
| header "Copying neorv32 test-target into riscv-arch-test framework" | ||||
| ( | ||||
|   cd ../sw/isa-test | ||||
|   target_device='riscv-arch-test/riscv-target/neorv32' | ||||
|   if [ -d "$target_device" ]; then rm -rf "$target_device"; fi | ||||
|   cp -vr port-neorv32 "$target_device" | ||||
| ) | ||||
|  | ||||
| header "Making local copy of NEORV32 'rtl' and 'sim' folders" | ||||
|  | ||||
| export NEORV32_LOCAL_RTL=${NEORV32_LOCAL_RTL:-$(pwd)/work} | ||||
|  | ||||
| rm -rf "$NEORV32_LOCAL_RTL" | ||||
| cp -r ../rtl "$NEORV32_LOCAL_RTL" | ||||
|  | ||||
| header "Starting RISC-V architecture tests" | ||||
|  | ||||
| ./simple/ghdl.setup.sh | ||||
|  | ||||
| # work in progress FIXME | ||||
| printf "\n\e[1;33mWARNING! 'rv32e/*' tests are work in progress! \e[0m\n\n" | ||||
|  | ||||
| makeArgs="-C $(pwd)/../sw/isa-test/riscv-arch-test NEORV32_ROOT=$(pwd)/.. XLEN=32 RISCV_TARGET=neorv32" | ||||
| makeTargets='clean build run verify' | ||||
|  | ||||
| [ -n "$1" ] && SUITES="$@" || SUITES='I C M privilege Zifencei' | ||||
|  | ||||
| for suite in $SUITES; do | ||||
|   case "$suite" in | ||||
|     I) make --silent $makeArgs SIM_TIME=850us RISCV_DEVICE=I $makeTargets;; | ||||
|     C) make --silent $makeArgs SIM_TIME=400us RISCV_DEVICE=C $makeTargets;; | ||||
|     M) make --silent $makeArgs SIM_TIME=800us RISCV_DEVICE=M $makeTargets;; | ||||
|     privilege) make --silent $makeArgs SIM_TIME=200us RISCV_DEVICE=privilege $makeTargets;; | ||||
|     Zifencei) make --silent $makeArgs SIM_TIME=200us RISCV_DEVICE=Zifencei RISCV_TARGET_FLAGS=-DNEORV32_NO_DATA_INIT $makeTargets;; | ||||
|  | ||||
|     rv32e_C) make --silent $makeArgs SIM_TIME=200us RISCV_DEVICE=../rv32e_unratified/C $makeTargets;; | ||||
|     rv32e_E) make --silent $makeArgs SIM_TIME=200us RISCV_DEVICE=../rv32e_unratified/E $makeTargets;; | ||||
|     rv32e_M) make --silent $makeArgs SIM_TIME=200us RISCV_DEVICE=../rv32e_unratified/M $makeTargets;; | ||||
|   esac | ||||
| done | ||||
|  | ||||
| printf "\nRISC-V architecture tests completed successfully" | ||||
		Reference in New Issue
	
	Block a user