mirror of
https://github.com/stnolting/neorv32.git
synced 2025-04-23 21:57:33 -04:00
[sim] split ghdl setup and run
This commit is contained in:
parent
dd079dfdbb
commit
6d59641493
11 changed files with 215 additions and 189 deletions
2
.github/workflows/Processor.yml
vendored
2
.github/workflows/Processor.yml
vendored
|
@ -52,7 +52,7 @@ jobs:
|
|||
run: ./sw/example/processor_check/check.sh
|
||||
|
||||
- name: '🚧 Run Processor Hardware Tests with shell script'
|
||||
run: ./sim/ghdl_sim.sh
|
||||
run: ./sim/ghdl.sh
|
||||
|
||||
|
||||
VUnit-Container:
|
||||
|
|
40
sim/ghdl.run.sh
Executable file
40
sim/ghdl.run.sh
Executable file
|
@ -0,0 +1,40 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
cd $(dirname "$0")
|
||||
|
||||
echo "Tip: Compile application with USER_FLAGS+=-DUART[0/1]_SIM_MODE to auto-enable UART[0/1]'s simulation mode (redirect UART output to simulator console)."
|
||||
|
||||
# Prepare simulation output files for UART0 and UART 1
|
||||
# - Testbench receiver log file (neorv32.testbench_uart?.out)
|
||||
# - Direct simulation output (neorv32.uart?.sim_mode.[text|data].out)
|
||||
for uart in 0 1; do
|
||||
for item in \
|
||||
testbench_uart"$uart" \
|
||||
uart"$uart".sim_mode.text \
|
||||
uart"$uart".sim_mode.data; do
|
||||
touch neorv32."$item".out
|
||||
chmod 777 neorv32."$item".out
|
||||
done
|
||||
done
|
||||
|
||||
GHDL="${GHDL:-ghdl}"
|
||||
|
||||
$GHDL -m --work=neorv32 --workdir=build neorv32_tb_simple
|
||||
|
||||
GHDL_RUN_ARGS="${@:---stop-time=10ms}"
|
||||
echo "Using simulation runtime args: $GHDL_RUN_ARGS";
|
||||
|
||||
runcmd="$GHDL -r --work=neorv32 --workdir=build neorv32_tb_simple \
|
||||
--max-stack-alloc=0 \
|
||||
--ieee-asserts=disable \
|
||||
--assert-level=error $GHDL_RUN_ARGS"
|
||||
|
||||
if [ -n "$GHDL_DEVNULL" ]; then
|
||||
$runcmd >> /dev/null
|
||||
else
|
||||
$runcmd
|
||||
fi
|
||||
|
||||
cat neorv32.uart0.sim_mode.text.out | grep "CPU TEST COMPLETED SUCCESSFULLY!"
|
14
sim/ghdl.setup.sh
Executable file
14
sim/ghdl.setup.sh
Executable file
|
@ -0,0 +1,14 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
cd $(dirname "$0")
|
||||
|
||||
mkdir -p build
|
||||
|
||||
ghdl -i --work=neorv32 --workdir=build \
|
||||
../rtl/core/*.vhd \
|
||||
../rtl/templates/processor/*.vhd \
|
||||
../rtl/templates/system/*.vhd \
|
||||
neorv32_tb.simple.vhd \
|
||||
uart_rx.simple.vhd
|
14
sim/ghdl.sh
Executable file
14
sim/ghdl.sh
Executable file
|
@ -0,0 +1,14 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# `GHDL` is used to check all VHDL files for syntax errors and to simulate the default testbench. The previously
|
||||
# installed CPU test program is executed and the console output (UART0 primary UART) is dumped to a text file. After the
|
||||
# simulation has finished, the text file is searched for a specific string. If the string is found, the CPU test was
|
||||
# successful.
|
||||
|
||||
# Abort if any command returns != 0
|
||||
set -e
|
||||
|
||||
cd $(dirname "$0")
|
||||
|
||||
./ghdl.setup.sh
|
||||
./ghdl.run.sh
|
|
@ -1,52 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# `GHDL` is used to check all VHDL files for syntax errors and to simulate the default testbench. The previously
|
||||
# installed CPU test program is executed and the console output (UART0 primary UART) is dumped to a text file. After the
|
||||
# simulation has finished, the text file is searched for a specific string. If the string is found, the CPU test was
|
||||
# successful.
|
||||
|
||||
# Abort if any command returns != 0
|
||||
set -e
|
||||
|
||||
cd $(dirname "$0")
|
||||
|
||||
# Simulation configuration
|
||||
SIM_CONFIG=--stop-time=10ms
|
||||
if [ -n "$1" ]; then
|
||||
SIM_CONFIG="$1";
|
||||
fi
|
||||
echo "Using simulation config: $SIM_CONFIG";
|
||||
|
||||
echo "Tip: Compile application with USER_FLAGS+=-DUART[0/1]_SIM_MODE to auto-enable UART[0/1]'s simulation mode (redirect UART output to simulator console)."
|
||||
|
||||
mkdir -p build
|
||||
|
||||
# Analyse sources; libs and images at first!
|
||||
ghdl -i --work=neorv32 --workdir=build \
|
||||
../rtl/core/*.vhd \
|
||||
../rtl/templates/processor/*.vhd \
|
||||
../rtl/templates/system/*.vhd \
|
||||
neorv32_tb.simple.vhd \
|
||||
uart_rx.simple.vhd
|
||||
|
||||
# Prepare simulation output files for UART0 and UART 1
|
||||
# - Testbench receiver log file (neorv32.testbench_uart?.out)
|
||||
# - Direct simulation output (neorv32.uart?.sim_mode.[text|data].out)
|
||||
for item in \
|
||||
testbench_uart0 \
|
||||
uart0.sim_mode.text \
|
||||
uart0.sim_mode.data \
|
||||
testbench_uart1 \
|
||||
uart1.sim_mode.text \
|
||||
uart1.sim_mode.data; do
|
||||
touch neorv32."$item".out
|
||||
chmod 777 neorv32."$item".out
|
||||
done
|
||||
|
||||
# Run simulation
|
||||
ghdl -m --work=neorv32 --workdir=build neorv32_tb_simple
|
||||
ghdl -r --work=neorv32 --workdir=build neorv32_tb_simple --max-stack-alloc=0 --ieee-asserts=disable --assert-level=error $SIM_CONFIG
|
||||
|
||||
cat neorv32.uart0.sim_mode.text.out | grep "CPU TEST COMPLETED SUCCESSFULLY!"
|
||||
|
||||
rm -rf *.{o,cf,lst,out} build
|
|
@ -33,7 +33,7 @@ mkdir -p work/sim
|
|||
for item in 'rtl' 'sw'; do
|
||||
cp -r ../"$item" work
|
||||
done
|
||||
for item in *.simple.vhd ghdl_sim.sh; do
|
||||
for item in *.simple.vhd ghdl*.sh; do
|
||||
cp -r "$item" work/sim
|
||||
done
|
||||
|
||||
|
|
|
@ -9,33 +9,6 @@ ifeq ($(shell command -v $(TARGET_SIM) 2> /dev/null),)
|
|||
$(error Target simulator executable '$(TARGET_SIM)` not found)
|
||||
endif
|
||||
|
||||
RUN_TARGET=\
|
||||
cd $(work_dir_isa); \
|
||||
rm -f $(NEORV32_LOCAL_COPY)/*.out; \
|
||||
echo "copying/using SIM-only IMEM (ROM!)"; \
|
||||
rm -f $(NEORV32_LOCAL_COPY)/rtl/core/neorv32_imem.vhd; \
|
||||
cp -f $(NEORV32_LOCAL_COPY)/sim/neorv32_imem.simple.vhd $(NEORV32_LOCAL_COPY)/rtl/core/neorv32_imem.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_A/c\CPU_EXTENSION_RISCV_A => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_C/c\CPU_EXTENSION_RISCV_C => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_E/c\CPU_EXTENSION_RISCV_E => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_M/c\CPU_EXTENSION_RISCV_M => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_U/c\CPU_EXTENSION_RISCV_U => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_Zicsr/c\CPU_EXTENSION_RISCV_Zicsr => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_Zifencei/c\CPU_EXTENSION_RISCV_Zifencei => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/constant ext_imem_c/c\constant ext_imem_c : boolean := false; -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/signal ext_ram_a : ext_mem_a_ram_t/c\signal ext_ram_a : ext_mem_a_ram_t; -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/MEM_INT_IMEM_USE/c\MEM_INT_IMEM_USE => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/MEM_INT_IMEM_SIZE/c\MEM_INT_IMEM_SIZE => 2*1024*1024, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/MEM_INT_IMEM_ROM/c\MEM_INT_IMEM_ROM => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
make -C $(NEORV32_LOCAL_COPY)/sw/example/blink_led main.elf; \
|
||||
cp -f $< $(NEORV32_LOCAL_COPY)/sw/example/blink_led/main.elf; \
|
||||
make -C $(NEORV32_LOCAL_COPY)/sw/example/blink_led main.bin; \
|
||||
make -C $(NEORV32_LOCAL_COPY)/sw/example/blink_led install; \
|
||||
touch $(NEORV32_LOCAL_COPY)/neorv32.uart0.sim_mode.data.out; \
|
||||
$(shell which time) -v $(NEORV32_LOCAL_COPY)/sim/ghdl_sim.sh --stop-time=$(SIM_TIME) >> /dev/null; \
|
||||
cp $(NEORV32_LOCAL_COPY)/sim/neorv32.uart0.sim_mode.data.out $(*).signature.output;
|
||||
|
||||
|
||||
RISCV_PREFIX ?= riscv32-unknown-elf-
|
||||
RISCV_GCC ?= $(RISCV_PREFIX)gcc
|
||||
RISCV_OBJDUMP ?= $(RISCV_PREFIX)objdump
|
||||
|
@ -50,3 +23,32 @@ COMPILE_TARGET=\
|
|||
-I$(TARGETDIR)/$(RISCV_TARGET)/ \
|
||||
-T$(TARGETDIR)/$(RISCV_TARGET)/link.imem_rom.ld \
|
||||
$$(<) -o $$@
|
||||
|
||||
RUN_TARGET=\
|
||||
cd $(work_dir_isa); \
|
||||
echo ">"; \
|
||||
rm -f $(NEORV32_LOCAL_COPY)/*.out; \
|
||||
echo "copying/using SIM-only IMEM (ROM!)"; \
|
||||
rm -f $(NEORV32_LOCAL_COPY)/rtl/core/neorv32_imem.vhd; \
|
||||
cp -f $(NEORV32_LOCAL_COPY)/sim/neorv32_imem.simple.vhd $(NEORV32_LOCAL_COPY)/rtl/core/neorv32_imem.vhd; \
|
||||
sed -i \
|
||||
-e '/CPU_EXTENSION_RISCV_A/c\CPU_EXTENSION_RISCV_A => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_C/c\CPU_EXTENSION_RISCV_C => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_E/c\CPU_EXTENSION_RISCV_E => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_M/c\CPU_EXTENSION_RISCV_M => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_U/c\CPU_EXTENSION_RISCV_U => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_Zicsr/c\CPU_EXTENSION_RISCV_Zicsr => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_Zifencei/c\CPU_EXTENSION_RISCV_Zifencei => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/constant ext_imem_c/c\constant ext_imem_c : boolean := false; -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/signal ext_ram_a : ext_mem_a_ram_t/c\signal ext_ram_a : ext_mem_a_ram_t; -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/MEM_INT_IMEM_USE/c\MEM_INT_IMEM_USE => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/MEM_INT_IMEM_SIZE/c\MEM_INT_IMEM_SIZE => 2*1024*1024, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/MEM_INT_IMEM_ROM/c\MEM_INT_IMEM_ROM => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
$(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
make -C $(NEORV32_LOCAL_COPY)/sw/example/blink_led main.elf; \
|
||||
cp -f $< $(NEORV32_LOCAL_COPY)/sw/example/blink_led/main.elf; \
|
||||
make -C $(NEORV32_LOCAL_COPY)/sw/example/blink_led main.bin install; \
|
||||
touch $(NEORV32_LOCAL_COPY)/neorv32.uart0.sim_mode.data.out; \
|
||||
GHDL_DEVNULL=true $(shell which time) -v $(NEORV32_LOCAL_COPY)/sim/ghdl.run.sh --stop-time=$(SIM_TIME); \
|
||||
cp $(NEORV32_LOCAL_COPY)/sim/neorv32.uart0.sim_mode.data.out $(*).signature.output; \
|
||||
echo "<";
|
||||
|
|
|
@ -9,33 +9,6 @@ ifeq ($(shell command -v $(TARGET_SIM) 2> /dev/null),)
|
|||
$(error Target simulator executable '$(TARGET_SIM)` not found)
|
||||
endif
|
||||
|
||||
RUN_TARGET=\
|
||||
cd $(work_dir_isa); \
|
||||
rm -f $(NEORV32_LOCAL_COPY)/*.out; \
|
||||
echo "copying/using SIM-only IMEM (ROM!)"; \
|
||||
rm -f $(NEORV32_LOCAL_COPY)/rtl/core/neorv32_imem.vhd; \
|
||||
cp -f $(NEORV32_LOCAL_COPY)/sim/neorv32_imem.simple.vhd $(NEORV32_LOCAL_COPY)/rtl/core/neorv32_imem.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_A/c\CPU_EXTENSION_RISCV_A => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_C/c\CPU_EXTENSION_RISCV_C => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_E/c\CPU_EXTENSION_RISCV_E => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_M/c\CPU_EXTENSION_RISCV_M => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_U/c\CPU_EXTENSION_RISCV_U => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_Zicsr/c\CPU_EXTENSION_RISCV_Zicsr => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_Zifencei/c\CPU_EXTENSION_RISCV_Zifencei => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/constant ext_imem_c/c\constant ext_imem_c : boolean := false; -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/signal ext_ram_a : ext_mem_a_ram_t/c\signal ext_ram_a : ext_mem_a_ram_t; -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/MEM_INT_IMEM_USE/c\MEM_INT_IMEM_USE => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/MEM_INT_IMEM_SIZE/c\MEM_INT_IMEM_SIZE => 2*1024*1024, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/MEM_INT_IMEM_ROM/c\MEM_INT_IMEM_ROM => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
make -C $(NEORV32_LOCAL_COPY)/sw/example/blink_led main.elf; \
|
||||
cp -f $< $(NEORV32_LOCAL_COPY)/sw/example/blink_led/main.elf; \
|
||||
make -C $(NEORV32_LOCAL_COPY)/sw/example/blink_led main.bin; \
|
||||
make -C $(NEORV32_LOCAL_COPY)/sw/example/blink_led install; \
|
||||
touch $(NEORV32_LOCAL_COPY)/neorv32.uart0.sim_mode.data.out; \
|
||||
$(shell which time) -v $(NEORV32_LOCAL_COPY)/sim/ghdl_sim.sh --stop-time=$(SIM_TIME) >> /dev/null; \
|
||||
cp $(NEORV32_LOCAL_COPY)/sim/neorv32.uart0.sim_mode.data.out $(*).signature.output;
|
||||
|
||||
|
||||
RISCV_PREFIX ?= riscv32-unknown-elf-
|
||||
RISCV_GCC ?= $(RISCV_PREFIX)gcc
|
||||
RISCV_OBJDUMP ?= $(RISCV_PREFIX)objdump
|
||||
|
@ -50,3 +23,32 @@ COMPILE_TARGET=\
|
|||
-I$(TARGETDIR)/$(RISCV_TARGET)/ \
|
||||
-T$(TARGETDIR)/$(RISCV_TARGET)/link.imem_rom.ld \
|
||||
$$(<) -o $$@
|
||||
|
||||
RUN_TARGET=\
|
||||
cd $(work_dir_isa); \
|
||||
echo ">"; \
|
||||
rm -f $(NEORV32_LOCAL_COPY)/*.out; \
|
||||
echo "copying/using SIM-only IMEM (ROM!)"; \
|
||||
rm -f $(NEORV32_LOCAL_COPY)/rtl/core/neorv32_imem.vhd; \
|
||||
cp -f $(NEORV32_LOCAL_COPY)/sim/neorv32_imem.simple.vhd $(NEORV32_LOCAL_COPY)/rtl/core/neorv32_imem.vhd; \
|
||||
sed -i \
|
||||
-e '/CPU_EXTENSION_RISCV_A/c\CPU_EXTENSION_RISCV_A => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_C/c\CPU_EXTENSION_RISCV_C => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_E/c\CPU_EXTENSION_RISCV_E => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_M/c\CPU_EXTENSION_RISCV_M => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_U/c\CPU_EXTENSION_RISCV_U => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_Zicsr/c\CPU_EXTENSION_RISCV_Zicsr => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_Zifencei/c\CPU_EXTENSION_RISCV_Zifencei => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/constant ext_imem_c/c\constant ext_imem_c : boolean := false; -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/signal ext_ram_a : ext_mem_a_ram_t/c\signal ext_ram_a : ext_mem_a_ram_t; -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/MEM_INT_IMEM_USE/c\MEM_INT_IMEM_USE => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/MEM_INT_IMEM_SIZE/c\MEM_INT_IMEM_SIZE => 2*1024*1024, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/MEM_INT_IMEM_ROM/c\MEM_INT_IMEM_ROM => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
$(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
make -C $(NEORV32_LOCAL_COPY)/sw/example/blink_led main.elf; \
|
||||
cp -f $< $(NEORV32_LOCAL_COPY)/sw/example/blink_led/main.elf; \
|
||||
make -C $(NEORV32_LOCAL_COPY)/sw/example/blink_led main.bin install; \
|
||||
touch $(NEORV32_LOCAL_COPY)/neorv32.uart0.sim_mode.data.out; \
|
||||
GHDL_DEVNULL=true $(shell which time) -v $(NEORV32_LOCAL_COPY)/sim/ghdl.run.sh --stop-time=$(SIM_TIME); \
|
||||
cp $(NEORV32_LOCAL_COPY)/sim/neorv32.uart0.sim_mode.data.out $(*).signature.output; \
|
||||
echo "<";
|
||||
|
|
|
@ -9,33 +9,6 @@ ifeq ($(shell command -v $(TARGET_SIM) 2> /dev/null),)
|
|||
$(error Target simulator executable '$(TARGET_SIM)` not found)
|
||||
endif
|
||||
|
||||
RUN_TARGET=\
|
||||
cd $(work_dir_isa); \
|
||||
rm -f $(NEORV32_LOCAL_COPY)/*.out; \
|
||||
echo "copying/using SIM-only IMEM (ROM!)"; \
|
||||
rm -f $(NEORV32_LOCAL_COPY)/rtl/core/neorv32_imem.vhd; \
|
||||
cp -f $(NEORV32_LOCAL_COPY)/sim/neorv32_imem.simple.vhd $(NEORV32_LOCAL_COPY)/rtl/core/neorv32_imem.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_A/c\CPU_EXTENSION_RISCV_A => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_C/c\CPU_EXTENSION_RISCV_C => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_E/c\CPU_EXTENSION_RISCV_E => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_M/c\CPU_EXTENSION_RISCV_M => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_U/c\CPU_EXTENSION_RISCV_U => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_Zicsr/c\CPU_EXTENSION_RISCV_Zicsr => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_Zifencei/c\CPU_EXTENSION_RISCV_Zifencei => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/constant ext_imem_c/c\constant ext_imem_c : boolean := false; -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/signal ext_ram_a : ext_mem_a_ram_t/c\signal ext_ram_a : ext_mem_a_ram_t; -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/MEM_INT_IMEM_USE/c\MEM_INT_IMEM_USE => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/MEM_INT_IMEM_SIZE/c\MEM_INT_IMEM_SIZE => 2*1024*1024, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/MEM_INT_IMEM_ROM/c\MEM_INT_IMEM_ROM => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
make -C $(NEORV32_LOCAL_COPY)/sw/example/blink_led main.elf; \
|
||||
cp -f $< $(NEORV32_LOCAL_COPY)/sw/example/blink_led/main.elf; \
|
||||
make -C $(NEORV32_LOCAL_COPY)/sw/example/blink_led main.bin; \
|
||||
make -C $(NEORV32_LOCAL_COPY)/sw/example/blink_led install; \
|
||||
touch $(NEORV32_LOCAL_COPY)/neorv32.uart0.sim_mode.data.out; \
|
||||
$(shell which time) -v $(NEORV32_LOCAL_COPY)/sim/ghdl_sim.sh --stop-time=$(SIM_TIME) >> /dev/null; \
|
||||
cp $(NEORV32_LOCAL_COPY)/sim/neorv32.uart0.sim_mode.data.out $(*).signature.output;
|
||||
|
||||
|
||||
RISCV_PREFIX ?= riscv32-unknown-elf-
|
||||
RISCV_GCC ?= $(RISCV_PREFIX)gcc
|
||||
RISCV_OBJDUMP ?= $(RISCV_PREFIX)objdump
|
||||
|
@ -50,3 +23,32 @@ COMPILE_TARGET=\
|
|||
-I$(TARGETDIR)/$(RISCV_TARGET)/ \
|
||||
-T$(TARGETDIR)/$(RISCV_TARGET)/link.imem_rom.ld \
|
||||
$$(<) -o $$@
|
||||
|
||||
RUN_TARGET=\
|
||||
cd $(work_dir_isa); \
|
||||
echo ">"; \
|
||||
rm -f $(NEORV32_LOCAL_COPY)/*.out; \
|
||||
echo "copying/using SIM-only IMEM (ROM!)"; \
|
||||
rm -f $(NEORV32_LOCAL_COPY)/rtl/core/neorv32_imem.vhd; \
|
||||
cp -f $(NEORV32_LOCAL_COPY)/sim/neorv32_imem.simple.vhd $(NEORV32_LOCAL_COPY)/rtl/core/neorv32_imem.vhd; \
|
||||
sed -i \
|
||||
-e '/CPU_EXTENSION_RISCV_A/c\CPU_EXTENSION_RISCV_A => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_C/c\CPU_EXTENSION_RISCV_C => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_E/c\CPU_EXTENSION_RISCV_E => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_M/c\CPU_EXTENSION_RISCV_M => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_U/c\CPU_EXTENSION_RISCV_U => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_Zicsr/c\CPU_EXTENSION_RISCV_Zicsr => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_Zifencei/c\CPU_EXTENSION_RISCV_Zifencei => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/constant ext_imem_c/c\constant ext_imem_c : boolean := false; -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/signal ext_ram_a : ext_mem_a_ram_t/c\signal ext_ram_a : ext_mem_a_ram_t; -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/MEM_INT_IMEM_USE/c\MEM_INT_IMEM_USE => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/MEM_INT_IMEM_SIZE/c\MEM_INT_IMEM_SIZE => 2*1024*1024, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/MEM_INT_IMEM_ROM/c\MEM_INT_IMEM_ROM => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
$(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
make -C $(NEORV32_LOCAL_COPY)/sw/example/blink_led main.elf; \
|
||||
cp -f $< $(NEORV32_LOCAL_COPY)/sw/example/blink_led/main.elf; \
|
||||
make -C $(NEORV32_LOCAL_COPY)/sw/example/blink_led main.bin install; \
|
||||
touch $(NEORV32_LOCAL_COPY)/neorv32.uart0.sim_mode.data.out; \
|
||||
GHDL_DEVNULL=true $(shell which time) -v $(NEORV32_LOCAL_COPY)/sim/ghdl.run.sh --stop-time=$(SIM_TIME); \
|
||||
cp $(NEORV32_LOCAL_COPY)/sim/neorv32.uart0.sim_mode.data.out $(*).signature.output; \
|
||||
echo "<";
|
||||
|
|
|
@ -9,33 +9,6 @@ ifeq ($(shell command -v $(TARGET_SIM) 2> /dev/null),)
|
|||
$(error Target simulator executable '$(TARGET_SIM)` not found)
|
||||
endif
|
||||
|
||||
RUN_TARGET=\
|
||||
cd $(work_dir_isa); \
|
||||
rm -f $(NEORV32_LOCAL_COPY)/*.out; \
|
||||
echo "restoring/using original IMEM rtl file"; \
|
||||
rm -f $(NEORV32_LOCAL_COPY)/rtl/core/neorv32_imem.vhd; \
|
||||
cp -f $(NEORV32_LOCAL_COPY)/rtl/core/neorv32_imem.ORIGINAL $(NEORV32_LOCAL_COPY)/rtl/core/neorv32_imem.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_A/c\CPU_EXTENSION_RISCV_A => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_C/c\CPU_EXTENSION_RISCV_C => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_E/c\CPU_EXTENSION_RISCV_E => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_M/c\CPU_EXTENSION_RISCV_M => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_U/c\CPU_EXTENSION_RISCV_U => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_Zicsr/c\CPU_EXTENSION_RISCV_Zicsr => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_Zifencei/c\CPU_EXTENSION_RISCV_Zifencei => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/constant ext_imem_c/c\constant ext_imem_c : boolean := false; -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/signal ext_ram_a : ext_mem_a_ram_t/c\signal ext_ram_a : ext_mem_a_ram_t; -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/MEM_INT_IMEM_USE/c\MEM_INT_IMEM_USE => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/MEM_INT_IMEM_SIZE/c\MEM_INT_IMEM_SIZE => 32*1024, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/MEM_INT_IMEM_ROM/c\MEM_INT_IMEM_ROM => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
make -C $(NEORV32_LOCAL_COPY)/sw/example/blink_led main.elf; \
|
||||
cp -f $< $(NEORV32_LOCAL_COPY)/sw/example/blink_led/main.elf; \
|
||||
make -C $(NEORV32_LOCAL_COPY)/sw/example/blink_led main.bin; \
|
||||
make -C $(NEORV32_LOCAL_COPY)/sw/example/blink_led install; \
|
||||
touch $(NEORV32_LOCAL_COPY)/neorv32.uart0.sim_mode.data.out; \
|
||||
$(shell which time) -v $(NEORV32_LOCAL_COPY)/sim/ghdl_sim.sh --stop-time=$(SIM_TIME) >> /dev/null; \
|
||||
cp $(NEORV32_LOCAL_COPY)/sim/neorv32.uart0.sim_mode.data.out $(*).signature.output;
|
||||
|
||||
|
||||
RISCV_PREFIX ?= riscv32-unknown-elf-
|
||||
RISCV_GCC ?= $(RISCV_PREFIX)gcc
|
||||
RISCV_OBJDUMP ?= $(RISCV_PREFIX)objdump
|
||||
|
@ -50,3 +23,32 @@ COMPILE_TARGET=\
|
|||
-I$(TARGETDIR)/$(RISCV_TARGET)/ \
|
||||
-T$(TARGETDIR)/$(RISCV_TARGET)/link.imem_ram.ld \
|
||||
$$(<) -o $$@
|
||||
|
||||
RUN_TARGET=\
|
||||
cd $(work_dir_isa); \
|
||||
echo ">"; \
|
||||
rm -f $(NEORV32_LOCAL_COPY)/*.out; \
|
||||
echo "restoring/using original IMEM rtl file"; \
|
||||
rm -f $(NEORV32_LOCAL_COPY)/rtl/core/neorv32_imem.vhd; \
|
||||
cp -f $(NEORV32_LOCAL_COPY)/rtl/core/neorv32_imem.ORIGINAL $(NEORV32_LOCAL_COPY)/rtl/core/neorv32_imem.vhd; \
|
||||
sed -i \
|
||||
-e '/CPU_EXTENSION_RISCV_A/c\CPU_EXTENSION_RISCV_A => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_C/c\CPU_EXTENSION_RISCV_C => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_E/c\CPU_EXTENSION_RISCV_E => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_M/c\CPU_EXTENSION_RISCV_M => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_U/c\CPU_EXTENSION_RISCV_U => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_Zicsr/c\CPU_EXTENSION_RISCV_Zicsr => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_Zifencei/c\CPU_EXTENSION_RISCV_Zifencei => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/constant ext_imem_c/c\constant ext_imem_c : boolean := false; -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/signal ext_ram_a : ext_mem_a_ram_t/c\signal ext_ram_a : ext_mem_a_ram_t; -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/MEM_INT_IMEM_USE/c\MEM_INT_IMEM_USE => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/MEM_INT_IMEM_SIZE/c\MEM_INT_IMEM_SIZE => 32*1024, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/MEM_INT_IMEM_ROM/c\MEM_INT_IMEM_ROM => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
$(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
make -C $(NEORV32_LOCAL_COPY)/sw/example/blink_led main.elf; \
|
||||
cp -f $< $(NEORV32_LOCAL_COPY)/sw/example/blink_led/main.elf; \
|
||||
make -C $(NEORV32_LOCAL_COPY)/sw/example/blink_led main.bin install; \
|
||||
touch $(NEORV32_LOCAL_COPY)/neorv32.uart0.sim_mode.data.out; \
|
||||
GHDL_DEVNULL=true $(shell which time) -v $(NEORV32_LOCAL_COPY)/sim/ghdl.run.sh --stop-time=$(SIM_TIME); \
|
||||
cp $(NEORV32_LOCAL_COPY)/sim/neorv32.uart0.sim_mode.data.out $(*).signature.output; \
|
||||
echo "<";
|
||||
|
|
|
@ -9,33 +9,6 @@ ifeq ($(shell command -v $(TARGET_SIM) 2> /dev/null),)
|
|||
$(error Target simulator executable '$(TARGET_SIM)` not found)
|
||||
endif
|
||||
|
||||
RUN_TARGET=\
|
||||
cd $(work_dir_isa); \
|
||||
rm -f $(NEORV32_LOCAL_COPY)/*.out; \
|
||||
echo "copying/using SIM-only IMEM (ROM!)"; \
|
||||
rm -f $(NEORV32_LOCAL_COPY)/rtl/core/neorv32_imem.vhd; \
|
||||
cp -f $(NEORV32_LOCAL_COPY)/sim/neorv32_imem.simple.vhd $(NEORV32_LOCAL_COPY)/rtl/core/neorv32_imem.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_A/c\CPU_EXTENSION_RISCV_A => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_C/c\CPU_EXTENSION_RISCV_C => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_E/c\CPU_EXTENSION_RISCV_E => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_M/c\CPU_EXTENSION_RISCV_M => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_U/c\CPU_EXTENSION_RISCV_U => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_Zicsr/c\CPU_EXTENSION_RISCV_Zicsr => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/CPU_EXTENSION_RISCV_Zifencei/c\CPU_EXTENSION_RISCV_Zifencei => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/constant ext_imem_c/c\constant ext_imem_c : boolean := false; -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/signal ext_ram_a : ext_mem_a_ram_t/c\signal ext_ram_a : ext_mem_a_ram_t; -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/MEM_INT_IMEM_USE/c\MEM_INT_IMEM_USE => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/MEM_INT_IMEM_SIZE/c\MEM_INT_IMEM_SIZE => 2*1024*1024, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
sed -i '/MEM_INT_IMEM_ROM/c\MEM_INT_IMEM_ROM => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' $(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
make -C $(NEORV32_LOCAL_COPY)/sw/example/blink_led main.elf; \
|
||||
cp -f $< $(NEORV32_LOCAL_COPY)/sw/example/blink_led/main.elf; \
|
||||
make -C $(NEORV32_LOCAL_COPY)/sw/example/blink_led main.bin; \
|
||||
make -C $(NEORV32_LOCAL_COPY)/sw/example/blink_led install; \
|
||||
touch $(NEORV32_LOCAL_COPY)/neorv32.uart0.sim_mode.data.out; \
|
||||
$(shell which time) -v $(NEORV32_LOCAL_COPY)/sim/ghdl_sim.sh --stop-time=$(SIM_TIME) >> /dev/null; \
|
||||
cp $(NEORV32_LOCAL_COPY)/sim/neorv32.uart0.sim_mode.data.out $(*).signature.output;
|
||||
|
||||
|
||||
RISCV_PREFIX ?= riscv32-unknown-elf-
|
||||
RISCV_GCC ?= $(RISCV_PREFIX)gcc
|
||||
RISCV_OBJDUMP ?= $(RISCV_PREFIX)objdump
|
||||
|
@ -50,3 +23,32 @@ COMPILE_TARGET=\
|
|||
-I$(TARGETDIR)/$(RISCV_TARGET)/ \
|
||||
-T$(TARGETDIR)/$(RISCV_TARGET)/link.imem_rom.ld \
|
||||
$$(<) -o $$@
|
||||
|
||||
RUN_TARGET=\
|
||||
cd $(work_dir_isa); \
|
||||
echo ">"; \
|
||||
rm -f $(NEORV32_LOCAL_COPY)/*.out; \
|
||||
echo "copying/using SIM-only IMEM (ROM!)"; \
|
||||
rm -f $(NEORV32_LOCAL_COPY)/rtl/core/neorv32_imem.vhd; \
|
||||
cp -f $(NEORV32_LOCAL_COPY)/sim/neorv32_imem.simple.vhd $(NEORV32_LOCAL_COPY)/rtl/core/neorv32_imem.vhd; \
|
||||
sed -i \
|
||||
-e '/CPU_EXTENSION_RISCV_A/c\CPU_EXTENSION_RISCV_A => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_C/c\CPU_EXTENSION_RISCV_C => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_E/c\CPU_EXTENSION_RISCV_E => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_M/c\CPU_EXTENSION_RISCV_M => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_U/c\CPU_EXTENSION_RISCV_U => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_Zicsr/c\CPU_EXTENSION_RISCV_Zicsr => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/CPU_EXTENSION_RISCV_Zifencei/c\CPU_EXTENSION_RISCV_Zifencei => false, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/constant ext_imem_c/c\constant ext_imem_c : boolean := false; -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/signal ext_ram_a : ext_mem_a_ram_t/c\signal ext_ram_a : ext_mem_a_ram_t; -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/MEM_INT_IMEM_USE/c\MEM_INT_IMEM_USE => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/MEM_INT_IMEM_SIZE/c\MEM_INT_IMEM_SIZE => 2*1024*1024, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
-e '/MEM_INT_IMEM_ROM/c\MEM_INT_IMEM_ROM => true, -- MOD. BY RISCV-ARCH-TEST TEST SCRIPT' \
|
||||
$(NEORV32_LOCAL_COPY)/sim/neorv32_tb.simple.vhd; \
|
||||
make -C $(NEORV32_LOCAL_COPY)/sw/example/blink_led main.elf; \
|
||||
cp -f $< $(NEORV32_LOCAL_COPY)/sw/example/blink_led/main.elf; \
|
||||
make -C $(NEORV32_LOCAL_COPY)/sw/example/blink_led main.bin install; \
|
||||
touch $(NEORV32_LOCAL_COPY)/neorv32.uart0.sim_mode.data.out; \
|
||||
GHDL_DEVNULL=true $(shell which time) -v $(NEORV32_LOCAL_COPY)/sim/ghdl.run.sh --stop-time=$(SIM_TIME); \
|
||||
cp $(NEORV32_LOCAL_COPY)/sim/neorv32.uart0.sim_mode.data.out $(*).signature.output; \
|
||||
echo "<";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue