forked from Github_Repos/cvw
Merge branch 'main' of github.com:davidharrishmc/riscv-wally into main
This commit is contained in:
commit
a157235a4b
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