aboutsummaryrefslogtreecommitdiff
path: root/VexRiscv/src/test/cpp/regression/makefile
diff options
context:
space:
mode:
authorFriedrich Beckmann <friedrich.beckmann@hs-augsburg.de>2022-07-25 17:55:39 +0200
committerFriedrich Beckmann <friedrich.beckmann@hs-augsburg.de>2022-07-25 17:55:39 +0200
commit3fff6023602822531efdae30bc8ebf862967f1ef (patch)
tree16028102b8d850f8ab3115d28a8539ca6bc5f51d /VexRiscv/src/test/cpp/regression/makefile
Initial Commit
Diffstat (limited to 'VexRiscv/src/test/cpp/regression/makefile')
-rw-r--r--VexRiscv/src/test/cpp/regression/makefile345
1 files changed, 345 insertions, 0 deletions
diff --git a/VexRiscv/src/test/cpp/regression/makefile b/VexRiscv/src/test/cpp/regression/makefile
new file mode 100644
index 0000000..b8759c9
--- /dev/null
+++ b/VexRiscv/src/test/cpp/regression/makefile
@@ -0,0 +1,345 @@
+DEBUG?=no
+REGRESSION_PATH?=./
+VEXRISCV_FILE?=../../../../VexRiscv.v
+IBUS?=CACHED
+IBUS_TC?=no
+IBUS_DATA_WIDTH?=32
+DBUS?=CACHED
+DBUS_LOAD_DATA_WIDTH?=32
+DBUS_STORE_DATA_WIDTH?=32
+TRACE?=no
+TRACE_ACCESS?=no
+TRACE_START=0
+TRACE_SPORADIC?=no
+ISA_TEST?=yes
+MUL?=yes
+DIV?=yes
+RVF?=no
+RVD?=no
+CSR?=yes
+CSR_SKIP_TEST?=no
+EBREAK?=no
+FENCEI?=no
+MMU?=yes
+DBUS_EXCLUSIVE?=no
+DBUS_INVALIDATE?=no
+PMP?=no
+SEED?=no
+LRSC?=no
+AMO?=no
+NO_STALL?=no
+DEBUG_PLUGIN?=STD
+DEBUG_PLUGIN_EXTERNAL?=no
+RUN_HEX=no
+WITH_RISCV_REF=yes
+CUSTOM_SIMD_ADD?=no
+CUSTOM_CSR?=no
+DHRYSTONE=yes
+FREERTOS?=no
+ZEPHYR?=no
+REDO?=10
+REF=no
+TRACE_WITH_TIME=no
+REF_TIME=no
+THREAD_COUNT?=$(shell nproc)
+MTIME_INSTR_FACTOR?=no
+COMPRESSED?=no
+SUPERVISOR?=no
+STOP_ON_ERROR?=no
+COREMARK=no
+WITH_USER_IO?=no
+
+
+ADDCFLAGS += -CFLAGS -DREGRESSION_PATH='\"$(REGRESSION_PATH)/\"'
+ADDCFLAGS += -CFLAGS -DIBUS_${IBUS}
+ADDCFLAGS += -CFLAGS -DIBUS_DATA_WIDTH=${IBUS_DATA_WIDTH}
+ADDCFLAGS += -CFLAGS -DDBUS_LOAD_DATA_WIDTH=${DBUS_LOAD_DATA_WIDTH}
+ADDCFLAGS += -CFLAGS -DDBUS_STORE_DATA_WIDTH=${DBUS_STORE_DATA_WIDTH}
+
+ADDCFLAGS += -CFLAGS -DDBUS_${DBUS}
+ADDCFLAGS += -CFLAGS -DREDO=${REDO}
+ADDCFLAGS += -CFLAGS -pthread
+ADDCFLAGS += -CFLAGS -Wno-unused-result
+
+
+
+ADDCFLAGS += -CFLAGS -DTHREAD_COUNT=${THREAD_COUNT}
+
+ifeq ($(DEBUG),yes)
+ ADDCFLAGS += -CFLAGS -O0 -CFLAGS -g
+else
+ ADDCFLAGS += -CFLAGS -O3 -O3
+endif
+
+ifeq ($(CONCURRENT_OS_EXECUTIONS),yes)
+ ADDCFLAGS += -CFLAGS -DCONCURRENT_OS_EXECUTIONS
+endif
+
+ifeq ($(LITEX),yes)
+ ADDCFLAGS += -CFLAGS -DLITEX
+ ADDCFLAGS += -CFLAGS -DVMLINUX='\"$(VMLINUX)\"'
+ ADDCFLAGS += -CFLAGS -DDTB='\"$(DTB)\"'
+ ADDCFLAGS += -CFLAGS -DRAMDISK='\"$(RAMDISK)\"'
+ ADDCFLAGS += -CFLAGS -DEMULATOR='\"$(EMULATOR)\"'
+endif
+
+ifeq ($(LINUX_SOC),yes)
+ ADDCFLAGS += -CFLAGS -DLINUX_SOC
+ ADDCFLAGS += -CFLAGS -DVMLINUX='\"$(VMLINUX)\"'
+ ADDCFLAGS += -CFLAGS -DDTB='\"$(DTB)\"'
+ ADDCFLAGS += -CFLAGS -DRAMDISK='\"$(RAMDISK)\"'
+ ADDCFLAGS += -CFLAGS -DEMULATOR='\"$(EMULATOR)\"'
+endif
+
+ifeq ($(LINUX_SOC_SMP),yes)
+ ADDCFLAGS += -CFLAGS -DLINUX_SOC_SMP
+ ADDCFLAGS += -CFLAGS -DVMLINUX='\"$(VMLINUX)\"'
+ ADDCFLAGS += -CFLAGS -DDTB='\"$(DTB)\"'
+ ADDCFLAGS += -CFLAGS -DRAMDISK='\"$(RAMDISK)\"'
+ ADDCFLAGS += -CFLAGS -DEMULATOR='\"$(EMULATOR)\"'
+endif
+
+
+ARCH_LINUX=rv32i
+ifeq ($(MUL),yes)
+ifeq ($(DIV),yes)
+ARCH_LINUX:=$(ARCH_LINUX)m
+endif
+endif
+ARCH_LINUX:=$(ARCH_LINUX)a
+ifeq ($(COMPRESSED),yes)
+ARCH_LINUX:=$(ARCH_LINUX)c
+endif
+
+ifeq ($(LINUX_REGRESSION),yes)
+ifneq ($(ARCH_LINUX),rv32iac)
+ifneq ($(ARCH_LINUX),rv32ia)
+ ADDCFLAGS += -CFLAGS -DLINUX_REGRESSION
+ ADDCFLAGS += -CFLAGS -DARCH_LINUX='\"$(ARCH_LINUX)\"'
+ ADDCFLAGS += -CFLAGS -DVMLINUX='\"../../resources/VexRiscvRegressionData/sim/linux/$(ARCH_LINUX)/Image\"'
+ ADDCFLAGS += -CFLAGS -DDTB='\"../../resources/VexRiscvRegressionData/sim/linux/$(ARCH_LINUX)/rv32.dtb\"'
+ ADDCFLAGS += -CFLAGS -DRAMDISK='\"../../resources/VexRiscvRegressionData/sim/linux/$(ARCH_LINUX)/rootfs.cpio\"'
+ ADDCFLAGS += -CFLAGS -DEMULATOR='\"../../resources/VexRiscvRegressionData/sim/linux/emulator/emulator.bin\"'
+endif
+endif
+endif
+
+
+ifeq ($(FLOW_INFO),yes)
+ ADDCFLAGS += -CFLAGS -DFLOW_INFO
+endif
+
+
+ifeq ($(COREMARK),yes)
+ ADDCFLAGS += -CFLAGS -DCOREMARK
+endif
+
+ifeq ($(WITH_RISCV_REF),yes)
+ ADDCFLAGS += -CFLAGS -DWITH_RISCV_REF
+endif
+
+
+
+ifneq ($(shell grep timerInterrupt ${VEXRISCV_FILE} -w),)
+ ADDCFLAGS += -CFLAGS -DTIMER_INTERRUPT
+endif
+
+ifneq ($(shell grep externalInterrupt ${VEXRISCV_FILE} -w),)
+ifneq ($(EXTERNAL_INTERRUPT),no)
+ ADDCFLAGS += -CFLAGS -DEXTERNAL_INTERRUPT
+endif
+endif
+
+ifneq ($(shell grep utime ${VEXRISCV_FILE} -w),)
+ ADDCFLAGS += -CFLAGS -DUTIME_INPUT
+endif
+
+ifneq ($(shell grep dBus_rsp_payload_aggregated ${VEXRISCV_FILE} -w),)
+ ADDCFLAGS += -CFLAGS -DDBUS_AGGREGATION
+endif
+
+
+ifneq ($(RUN_HEX),no)
+ ADDCFLAGS += -CFLAGS -DRUN_HEX='\"$(RUN_HEX)\"'
+endif
+
+
+ifeq ($(IBUS_TC),yes)
+ ADDCFLAGS += -CFLAGS -DIBUS_TC=yes
+endif
+ifeq ($(WITH_USER_IO),yes)
+ ADDCFLAGS += -CFLAGS -DWITH_USER_IO=yes
+endif
+
+
+ifeq ($(COMPRESSED),yes)
+ ADDCFLAGS += -CFLAGS -DCOMPRESSED
+endif
+ifeq ($(SUPERVISOR),yes)
+ ADDCFLAGS += -CFLAGS -DSUPERVISOR
+endif
+ifeq ($(FENCEI),yes)
+ ADDCFLAGS += -CFLAGS -DFENCEI
+endif
+
+ifeq ($(EBREAK),yes)
+ ADDCFLAGS += -CFLAGS -DEBREAK
+endif
+
+
+ifeq ($(DHRYSTONE),yes)
+ ADDCFLAGS += -CFLAGS -DDHRYSTONE
+endif
+
+ifeq ($(STOP_ON_ERROR),yes)
+ ADDCFLAGS += -CFLAGS -DSTOP_ON_ERROR
+endif
+
+
+ifeq ($(NO_STALL),yes)
+ ADDCFLAGS += -CFLAGS -DSTALL=0
+else
+ ADDCFLAGS += -CFLAGS -DSTALL=1
+endif
+
+ifneq ($(MTIME_INSTR_FACTOR),no)
+ ADDCFLAGS += -CFLAGS -DMTIME_INSTR_FACTOR=${MTIME_INSTR_FACTOR}
+endif
+
+ifneq ($(SEED),no)
+ ADDCFLAGS += -CFLAGS -DSEED=${SEED}
+endif
+
+ifeq ($(TRACE),yes)
+ VERILATOR_ARGS += --trace-fst
+ ADDCFLAGS += -CFLAGS -DTRACE
+endif
+
+ifeq ($(TRACE_SPORADIC),yes)
+ ADDCFLAGS += -CFLAGS -DTRACE_SPORADIC
+endif
+
+
+
+ifeq ($(CSR),yes)
+ ADDCFLAGS += -CFLAGS -DCSR
+endif
+
+ifeq ($(CSR_SKIP_TEST),yes)
+ ADDCFLAGS += -CFLAGS -DCSR_SKIP_TEST
+endif
+
+
+ifeq ($(LRSC),yes)
+ ADDCFLAGS += -CFLAGS -DLRSC
+endif
+
+ifeq ($(AMO),yes)
+ ADDCFLAGS += -CFLAGS -DAMO
+endif
+
+ifeq ($(CUSTOM_SIMD_ADD),yes)
+ ADDCFLAGS += -CFLAGS -DCUSTOM_SIMD_ADD
+endif
+
+ifeq ($(CUSTOM_CSR),yes)
+ ADDCFLAGS += -CFLAGS -DCUSTOM_CSR
+endif
+
+ifeq ($(TRACE_WITH_TIME),yes)
+ ADDCFLAGS += -CFLAGS -DTRACE_WITH_TIME
+endif
+
+ifeq ($(REF_TIME),yes)
+ ADDCFLAGS += -CFLAGS -DREF_TIME
+endif
+
+ifeq ($(ISA_TEST),yes)
+ ADDCFLAGS += -CFLAGS -DISA_TEST
+endif
+
+ifeq ($(MMU),yes)
+ ADDCFLAGS += -CFLAGS -DMMU
+endif
+
+ifeq ($(DBUS_EXCLUSIVE),yes)
+ ADDCFLAGS += -CFLAGS -DDBUS_EXCLUSIVE
+endif
+ifeq ($(DBUS_INVALIDATE),yes)
+ ADDCFLAGS += -CFLAGS -DDBUS_INVALIDATE
+endif
+
+ifeq ($(PMP),yes)
+ ADDCFLAGS += -CFLAGS -DPMP
+endif
+
+ifeq ($(MUL),yes)
+ ADDCFLAGS += -CFLAGS -DMUL
+endif
+
+ifeq ($(RVF),yes)
+ ADDCFLAGS += -CFLAGS -DRVF
+endif
+
+ifeq ($(RVD),yes)
+ ADDCFLAGS += -CFLAGS -DRVD
+endif
+
+ifeq ($(DIV),yes)
+ ADDCFLAGS += -CFLAGS -DDIV
+endif
+
+ifeq ($(TRACE_ACCESS),yes)
+ ADDCFLAGS += -CFLAGS -DTRACE_ACCESS
+endif
+
+ifneq ($(DEBUG_PLUGIN),no)
+ ADDCFLAGS += -CFLAGS -DDEBUG_PLUGIN
+ ADDCFLAGS += -CFLAGS -DDEBUG_PLUGIN_${DEBUG_PLUGIN}
+endif
+
+ifeq ($(DEBUG_PLUGIN_EXTERNAL),yes)
+ ADDCFLAGS += -CFLAGS -DDEBUG_PLUGIN_EXTERNAL
+endif
+
+ifeq ($(REF),yes)
+ ADDCFLAGS += -CFLAGS -DREF
+endif
+
+ADDCFLAGS += -CFLAGS -DTRACE_START=${TRACE_START}
+ifeq ($(FREERTOS),yes)
+ ADDCFLAGS += -CFLAGS -DFREERTOS
+ ADDCFLAGS += -CFLAGS -DFREERTOS_COUNT=99999
+else
+ifneq ($(FREERTOS),no)
+ ADDCFLAGS += -CFLAGS -DFREERTOS
+ ADDCFLAGS += -CFLAGS -DFREERTOS_COUNT=$(FREERTOS)
+endif
+endif
+
+
+ifeq ($(ZEPHYR),yes)
+ ADDCFLAGS += -CFLAGS -DZEPHYR
+ ADDCFLAGS += -CFLAGS -DZEPHYR_COUNT=99999
+else
+ifneq ($(ZEPHYR),no)
+ ADDCFLAGS += -CFLAGS -DZEPHYR
+ ADDCFLAGS += -CFLAGS -DZEPHYR_COUNT=$(ZEPHYR)
+endif
+endif
+
+all: clean run
+
+run: compile
+ ./obj_dir/VVexRiscv
+
+verilate: ${VEXRISCV_FILE}
+ cp ${VEXRISCV_FILE}*.bin . | true
+ verilator -cc ${VEXRISCV_FILE} -O3 -CFLAGS -std=c++11 -LDFLAGS -pthread ${ADDCFLAGS} --gdbbt ${VERILATOR_ARGS} -Wno-UNOPTFLAT -Wno-WIDTH --x-assign unique --exe main.cpp
+
+compile: verilate
+ make -j${THREAD_COUNT} -C obj_dir/ -f VVexRiscv.mk VVexRiscv
+
+clean:
+ rm -rf obj_dir
+