From 475fa0176731cd33a6fc1850edfb5b149a467e54 Mon Sep 17 00:00:00 2001 From: David Harris Date: Mon, 20 Dec 2021 21:08:34 -0800 Subject: [PATCH 1/3] Fixing paths in wally-setup.sh --- wally-pipelined/src/privileged/privdec.sv | 3 +-- wally-pipelined/src/privileged/privileged.sv | 6 ++---- wally-setup.sh | 22 +++++++++++++------- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/wally-pipelined/src/privileged/privdec.sv b/wally-pipelined/src/privileged/privdec.sv index ec01f414..5fe6419e 100644 --- a/wally-pipelined/src/privileged/privdec.sv +++ b/wally-pipelined/src/privileged/privdec.sv @@ -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 diff --git a/wally-pipelined/src/privileged/privileged.sv b/wally-pipelined/src/privileged/privileged.sv index 5fd80fbe..bf08ade9 100644 --- a/wally-pipelined/src/privileged/privileged.sv +++ b/wally-pipelined/src/privileged/privileged.sv @@ -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); diff --git a/wally-setup.sh b/wally-setup.sh index 4dba5495..00e35943 100644 --- a/wally-setup.sh +++ b/wally-setup.sh @@ -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:$LD_LIBRARY_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 From 09a24f7240aa3544e95628d23d5e6027cef8cc55 Mon Sep 17 00:00:00 2001 From: David Harris Date: Tue, 21 Dec 2021 05:10:14 +0000 Subject: [PATCH 2/3] Improving Wally installation makefile --- Makefile | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/Makefile b/Makefile index d715d72d..35da3a5e 100644 --- a/Makefile +++ b/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 - From 07810f402526ae36a99655d2c0c6d7c192aa6b85 Mon Sep 17 00:00:00 2001 From: David Harris Date: Mon, 20 Dec 2021 21:14:35 -0800 Subject: [PATCH 3/3] Renamed to setup.sh and fixed path bug --- wally-setup.sh => setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename wally-setup.sh => setup.sh (97%) diff --git a/wally-setup.sh b/setup.sh similarity index 97% rename from wally-setup.sh rename to setup.sh index 00e35943..fb132f9f 100644 --- a/wally-setup.sh +++ b/setup.sh @@ -15,7 +15,7 @@ export LD_LIBRARY_PATH=$RISCV/riscv-gnu-toolchain/lib:$RISCV/riscv-gnu-toolchain 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:$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