Initial commit
This commit is contained in:
74
Libs/RiscV/NEORV32/sw/isa-test/common.mk
Normal file
74
Libs/RiscV/NEORV32/sw/isa-test/common.mk
Normal file
@@ -0,0 +1,74 @@
|
||||
ifndef NEORV32_ROOT
|
||||
$(error NEORV32_ROOT is undefined)
|
||||
endif
|
||||
|
||||
NEORV32_LOCAL_RTL ?= $(NEORV32_ROOT)/sim/work
|
||||
|
||||
TARGET_SIM ?= ghdl
|
||||
TARGET_FLAGS ?= $(RISCV_TARGET_FLAGS)
|
||||
|
||||
ifeq ($(shell command -v $(TARGET_SIM) 2> /dev/null),)
|
||||
$(error Target simulator executable '$(TARGET_SIM)` not found)
|
||||
endif
|
||||
|
||||
NEORV32_MARCH ?= rv32i
|
||||
NEORV32_MABI ?= ilp32
|
||||
|
||||
RISCV_PREFIX ?= riscv32-unknown-elf-
|
||||
RISCV_GCC ?= $(RISCV_PREFIX)gcc
|
||||
RISCV_OBJDUMP ?= $(RISCV_PREFIX)objdump
|
||||
RISCV_OBJCOPY ?= $(RISCV_PREFIX)objcopy
|
||||
RISCV_READELF ?= $(RISCV_PREFIX)readelf
|
||||
RISCV_GCC_OPTS ?= -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles -march=$(NEORV32_MARCH) -mabi=$(NEORV32_MABI)
|
||||
|
||||
NEORV32_LINK ?= link.imem_rom.ld
|
||||
|
||||
COMPILE_TARGET ?= \
|
||||
$$(RISCV_GCC) $(1) $$(RISCV_GCC_OPTS) \
|
||||
$$(RISCV_TARGET_FLAGS) \
|
||||
-I$(ROOTDIR)/riscv-test-suite/env/ \
|
||||
-I$(TARGETDIR)/$(RISCV_TARGET)/ \
|
||||
-T$(TARGETDIR)/$(RISCV_TARGET)/$(NEORV32_LINK) \
|
||||
$$(<) -o $$@
|
||||
|
||||
NEORV32_CPU_EXTENSION_RISCV_C ?= false
|
||||
NEORV32_CPU_EXTENSION_RISCV_E ?= false
|
||||
NEORV32_CPU_EXTENSION_RISCV_M ?= false
|
||||
NEORV32_CPU_EXTENSION_RISCV_ZIFENCEI ?= false
|
||||
NEORV32_MEM_INT_IMEM_SIZE ?= '2097152'
|
||||
|
||||
NEORV32_SOFTWARE_EXAMPLE ?= $(NEORV32_ROOT)/sw/example/blink_led
|
||||
|
||||
ifeq ($(NEORV32_CPU_EXTENSION_RISCV_ZIFENCEI), true)
|
||||
RUN_TARGET ?= \
|
||||
echo "copying/using SIM-only IMEM (pre-initialized RAM!)"; \
|
||||
rm -f $(NEORV32_LOCAL_RTL)/core/mem/neorv32_imem.default.vhd; \
|
||||
cp -f $(NEORV32_ROOT)/sim/simple/neorv32_imem.iram.simple.vhd $(NEORV32_LOCAL_RTL)/core/mem/neorv32_imem.default.vhd;
|
||||
else
|
||||
RUN_TARGET ?= \
|
||||
echo "copying/using SIM-only IMEM (pre-initialized ROM!)"; \
|
||||
rm -f $(NEORV32_LOCAL_RTL)/core/mem/neorv32_imem.default.vhd; \
|
||||
cp -f $(NEORV32_ROOT)/sim/simple/neorv32_imem.simple.vhd $(NEORV32_LOCAL_RTL)/core/mem/neorv32_imem.default.vhd;
|
||||
endif
|
||||
|
||||
RUN_TARGET += \
|
||||
cd $(work_dir_isa); \
|
||||
echo ">"; \
|
||||
rm -f $(NEORV32_ROOT)/sim/*.out; \
|
||||
make -C $(NEORV32_SOFTWARE_EXAMPLE) main.elf; \
|
||||
cp -f $< $(NEORV32_SOFTWARE_EXAMPLE)/main.elf; \
|
||||
make -C $(NEORV32_SOFTWARE_EXAMPLE) main.bin install; \
|
||||
touch $(NEORV32_ROOT)/sim/simple/neorv32.uart0.sim_mode.data.out; \
|
||||
GHDL_DEVNULL=true $(shell which time) -v $(NEORV32_ROOT)/sim/simple/ghdl.run.sh \
|
||||
--stop-time=$(SIM_TIME) \
|
||||
-gCPU_EXTENSION_RISCV_A=false \
|
||||
-gCPU_EXTENSION_RISCV_C=$(NEORV32_CPU_EXTENSION_RISCV_C) \
|
||||
-gCPU_EXTENSION_RISCV_E=$(NEORV32_CPU_EXTENSION_RISCV_E) \
|
||||
-gCPU_EXTENSION_RISCV_M=$(NEORV32_CPU_EXTENSION_RISCV_M) \
|
||||
-gCPU_EXTENSION_RISCV_U=false \
|
||||
-gCPU_EXTENSION_RISCV_Zicsr=true \
|
||||
-gCPU_EXTENSION_RISCV_Zifencei=true \
|
||||
-gEXT_IMEM_C=false \
|
||||
-gMEM_INT_IMEM_SIZE=$(NEORV32_MEM_INT_IMEM_SIZE); \
|
||||
cp $(NEORV32_ROOT)/sim/simple/neorv32.uart0.sim_mode.data.out $(*).signature.output; \
|
||||
echo "<";
|
||||
Reference in New Issue
Block a user