mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	Merge branch 'main' of github.com:davidharrishmc/riscv-wally into main
This commit is contained in:
		
						commit
						a02ac78907
					
				
							
								
								
									
										33
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								Makefile
									
									
									
									
									
								
							@ -1,24 +1,23 @@
 | 
			
		||||
make all:
 | 
			
		||||
# move these parts into compiling archtest separtately
 | 
			
		||||
#	cp -r addins/riscv-isa-sim/arch_test_target/spike/device/rv32i_m/I addins/riscv-isa-sim/arch_test_target/spike/device/rv32i_m/F
 | 
			
		||||
#	cp -r addins/riscv-isa-sim/arch_test_target/spike/device/rv64i_m/I addins/riscv-isa-sim/arch_test_target/spike/device/rv64i_m/D
 | 
			
		||||
#	sed -i 's/--isa=rv32i /--isa=32if/' addins/riscv-isa-sim/arch_test_target/spike/device/rv32i_m/F/Makefile.include
 | 
			
		||||
#	sed -i 's/--isa=rv64i /--isa=64id/' addins/riscv-isa-sim/arch_test_target/spike/device/rv64i_m/D/Makefile.include
 | 
			
		||||
#	if [ -d "addins/riscv-isa-sim/build" ]; then echo "Build exists"; else mkdir addins/riscv-isa-sim/build; fi
 | 
			
		||||
#	cd addins/riscv-isa-sim/build; ../configure --prefix=/cad/riscv/gcc/bin
 | 
			
		||||
#	make -C addins/riscv-isa-sim/build
 | 
			
		||||
#	sudo make install -C addins/riscv-isa-sim/build
 | 
			
		||||
#	cp addins/riscv-isa-sim/arch_test_target/spike/Makefile.include addins/riscv-arch-test/
 | 
			
		||||
# update with path including $RISCV_TOOLS
 | 
			
		||||
# separate into make tests and make regression
 | 
			
		||||
    cp $RISCV/riscv-isa-sim/arch_test_target/spike/Makefile.include addins/riscv-arch-test/
 | 
			
		||||
	sed -i '/export TARGETDIR ?=/c\export TARGETDIR ?= $RISCV/riscv-isa-sim/arch_test_target' tests/wally-riscv-arch-test/Makefile.include
 | 
			
		||||
	echo export RISCV_PREFIX = riscv64-unknown-elf- >> tests/wally-riscv-arch-test/Makefile.include
 | 
			
		||||
all:
 | 
			
		||||
	install
 | 
			
		||||
	compile
 | 
			
		||||
	regression
 | 
			
		||||
 | 
			
		||||
# install copies over the Makefile.include from riscv-isa-sim
 | 
			
		||||
# And corrects the TARGETDIR path and the RISCV_PREFIXZ
 | 
			
		||||
 | 
			
		||||
install:
 | 
			
		||||
	cp ${RISCV}/riscv-isa-sim/arch_test_target/spike/Makefile.include addins/riscv-arch-test/
 | 
			
		||||
	sed -i '/export TARGETDIR ?=/c\export TARGETDIR ?= ${RISCV}/riscv-isa-sim/arch_test_target' addins/riscv-arch-test/Makefile.include
 | 
			
		||||
	echo export RISCV_PREFIX = riscv64-unknown-elf- >> addins/riscv-arch-test/Makefile.include
 | 
			
		||||
 | 
			
		||||
compile:
 | 
			
		||||
	make -C addins/riscv-arch-test
 | 
			
		||||
	make -C addins/riscv-arch-test XLEN=32
 | 
			
		||||
	cd tests/wally-riscv-arch-test; exe2memfile.pl work/*/*/*.elf
 | 
			
		||||
 | 
			
		||||
regression:
 | 
			
		||||
	make -C wally-pipelined/regression
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -10,17 +10,23 @@ echo "Executing wally-setup.sh"
 | 
			
		||||
export RISCV=/opt/riscv   # change this if you installed the tools in a different location
 | 
			
		||||
 | 
			
		||||
# Tools
 | 
			
		||||
export PATH=$RISCV/riscv-gnu-toolchain/bin:$RISCV/riscv-gnu-toolchain/riscv64-unknown-elf/bin:$PATH       # GCC tools
 | 
			
		||||
export PATH=~/riscv-wally/bin:$PATH    # exe2memfile; change this if riscv-wally isn't at your home directory
 | 
			
		||||
export PATH=/cad/mentor/questa_sim-2021.2_1/questasim/bin:$PATH    # Change this for your path to Modelsim
 | 
			
		||||
export PATH=/usr/local/bin/verilator:$PATH # Change this for your path to Verilator
 | 
			
		||||
# GCCZ
 | 
			
		||||
export LD_LIBRARY_PATH=$RISCV/riscv-gnu-toolchain/lib:$RISCV/riscv-gnu-toolchain/riscv64-unknown-elf/lib:$LD_LIBRARY_PATH
 | 
			
		||||
 | 
			
		||||
export MGLS_LICENSE_FILE=1717@solidworks.eng.hmc.edu # *** is this the right license server now
 | 
			
		||||
export PATH=$RISCV/riscv-gnu-toolchain/bin:$RISCV/riscv-gnu-toolchain/riscv64-unknown-elf/bin:$PATH       # GCC tools
 | 
			
		||||
# Spike
 | 
			
		||||
export LD_LIBRARY_PATH=$RISCV/lib:$LD_LIBRARY_PATH
 | 
			
		||||
export PATH=$RISCV/bin:$PATH
 | 
			
		||||
# exe2memfile
 | 
			
		||||
export PATH=~/riscv-wally/bin:$PATH    # exe2memfile; change this if riscv-wally isn't at your home directory
 | 
			
		||||
# Verilator
 | 
			
		||||
export PATH=/usr/local/bin/verilator:$PATH # Change this for your path to Verilator
 | 
			
		||||
# ModelSim/Questa (vsim)
 | 
			
		||||
export PATH=/cad/mentor/questa_sim-2021.2_1/questasim/bin:$PATH    # Change this for your path to Modelsim
 | 
			
		||||
export MGLS_LICENSE_FILE=1717@solidworks.eng.hmc.edu # Change this to your Siemens license server
 | 
			
		||||
 | 
			
		||||
# Imperas; *** remove if not using
 | 
			
		||||
PATH=/cad/riscv/imperas-riscv-tests/riscv-ovpsim-plus/bin/Linux64:/cad/riscv/imperas-riscv-tests/riscv-ovpsim/bin/Liux64:$PATH  # *** maybe take this out based on Imperas
 | 
			
		||||
export PATH=/cad/riscv/imperas-riscv-tests/riscv-ovpsim-plus/bin/Linux64:/cad/riscv/imperas-riscv-tests/riscv-ovpsim/bin/Liux64:$PATH  # *** maybe take this out based on Imperas
 | 
			
		||||
export LD_LIBRARY_PATH=/cad/imperas/Imperas.20200630/bin/Linux64:$LD_LIBRARY_PATH # remove if no imperas
 | 
			
		||||
IMPERAS_HOME=/cad/imperas/Imperas.20200630
 | 
			
		||||
export IMPERAS_HOME=/cad/imperas/Imperas.20200630
 | 
			
		||||
source $IMPERAS_HOME/bin/setup.sh
 | 
			
		||||
setupImperas $IMPERAS_HOME
 | 
			
		||||
@ -49,6 +49,5 @@ module privdec (
 | 
			
		||||
  assign IllegalPrivilegedInstrM = PrivilegedM & ~(uretM|sretM|mretM|ecallM|ebreakM|wfiM|sfencevmaM);
 | 
			
		||||
  assign IllegalInstrFaultM = (IllegalIEUInstrFaultM & IllegalFPUInstrM) | IllegalPrivilegedInstrM | IllegalCSRAccessM | TrappedSRETM; // *** generalize this for other instructions
 | 
			
		||||
 | 
			
		||||
  // *** initially, wfi and sfencevma are nop
 | 
			
		||||
  // *** zfenci extension?
 | 
			
		||||
  // *** initially, wfi is nop
 | 
			
		||||
endmodule
 | 
			
		||||
 | 
			
		||||
@ -144,11 +144,9 @@ module privileged (
 | 
			
		||||
 | 
			
		||||
  ///////////////////////////////////////////
 | 
			
		||||
  // decode privileged instructions
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  ///////////////////////////////////////////
 | 
			
		||||
  //privdec pmd(.InstrM(InstrM[31:20]),.*);
 | 
			
		||||
  privdec pmd(.InstrM(InstrM[31:20]), 
 | 
			
		||||
 | 
			
		||||
   privdec pmd(.InstrM(InstrM[31:20]), 
 | 
			
		||||
              .PrivilegedM, .IllegalIEUInstrFaultM, .IllegalCSRAccessM, .IllegalFPUInstrM, .TrappedSRETM,
 | 
			
		||||
              .PrivilegeModeW, .STATUS_TSR, .IllegalInstrFaultM, 
 | 
			
		||||
              .uretM, .sretM, .mretM, .ecallM, .ebreakM, .wfiM, .sfencevmaM);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user