Add targets for emulator and fsim regressions
This change allows the other simulation targets (the emulator and the FPGA simulator) to be run just like the Verilog simulator could be before.
This commit is contained in:
parent
7e9d8c7256
commit
e185fe6850
@ -1,8 +1,15 @@
|
|||||||
# The default target
|
# The default target, which runs all regression targets.
|
||||||
regression: vsim-asm-tests vsim-bmark-tests torture
|
regression: vsim-regression fsim-regression emulator-regression
|
||||||
|
|
||||||
|
# Regression targets for the various simulators.
|
||||||
|
%-regression: %-asm-tests %-bmark-tests
|
||||||
|
|
||||||
ifeq ($(CONFIG),)
|
ifeq ($(CONFIG),)
|
||||||
$(error Set CONFIG to the configuration to build)
|
$(error Set CONFIG to the rocket-chip configuration to elaborate and test)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(TORTURE_CONFIG),)
|
||||||
|
$(error Set TORTURE_CONFIG to the torture configuration to run)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# The top-level directory that contains rocket-chip
|
# The top-level directory that contains rocket-chip
|
||||||
@ -11,15 +18,38 @@ TOP ?= ..
|
|||||||
# The directory that the tools get built into.
|
# The directory that the tools get built into.
|
||||||
RISCV ?= install
|
RISCV ?= install
|
||||||
|
|
||||||
|
# Torture saves the failing tests into a directory, which defaults to just somehing inside the regressions directory.
|
||||||
|
TORTURE_SAVE_DIR ?= torture-failures
|
||||||
|
|
||||||
|
# Removes all the build stamps from the current config
|
||||||
|
.PHONY: clean
|
||||||
|
clean:
|
||||||
|
rm -rf stamps $(abspath $(RISCV))
|
||||||
|
$(MAKE) -C $(abspath $(TOP)/vsim) clean
|
||||||
|
$(MAKE) -C $(abspath $(TOP)/fsim) clean
|
||||||
|
$(MAKE) -C $(abspath $(TOP)/emulator) clean
|
||||||
|
|
||||||
# These are the named regression targets. While it's expected you run them in
|
# These are the named regression targets. While it's expected you run them in
|
||||||
# this order, since there's dependencies for everything it doesn't actually
|
# this order, since there's dependencies for everything it doesn't actually
|
||||||
# matter.
|
# matter. They're here to make running the various targets from the
|
||||||
|
# commandline a bit cleaner.
|
||||||
submodules: stamps/submodules.stamp
|
submodules: stamps/submodules.stamp
|
||||||
tools: stamps/tools.stamp
|
tools: stamps/tools.stamp
|
||||||
vsim: stamps/vsim.stamp
|
|
||||||
vsim-asm-tests: stamps/vsim-asm-tests.stamp
|
emulator-debug: stamps/$(CONFIG)/emulator-debug.stamp
|
||||||
vsim-bmark-tests: stamps/vsim-bmark-tests.stamp
|
emulator-ndebug: stamps/$(CONFIG)/emulator-ndebug.stamp
|
||||||
torture: stamps/torture.stamp
|
emulator-asm-tests: stamps/$(CONFIG)/emulator-asm-tests.stamp
|
||||||
|
emulator-bmark-tests: stamps/$(CONFIG)/emulator-bmark-tests.stamp
|
||||||
|
|
||||||
|
vsim-debug: stamps/$(CONFIG)/vsim-debug.stamp
|
||||||
|
vsim-ndebug: stamps/$(CONFIG)/vsim-ndebug.stamp
|
||||||
|
vsim-asm-tests: stamps/$(CONFIG)/vsim-asm-tests.stamp
|
||||||
|
vsim-bmark-tests: stamps/$(CONFIG)/vsim-bmark-tests.stamp
|
||||||
|
|
||||||
|
fsim-debug: stamps/$(CONFIG)/fsim-debug.stamp
|
||||||
|
fsim-ndebug: stamps/$(CONFIG)/fsim-ndebug.stamp
|
||||||
|
fsim-asm-tests: stamps/$(CONFIG)/fsim-asm-tests.stamp
|
||||||
|
fsim-bmark-tests: stamps/$(CONFIG)/fsim-bmark-tests.stamp
|
||||||
|
|
||||||
# Checks out all the rocket-chip submodules
|
# Checks out all the rocket-chip submodules
|
||||||
stamps/submodules.stamp:
|
stamps/submodules.stamp:
|
||||||
@ -33,19 +63,24 @@ stamps/tools.stamp: stamps/submodules.stamp
|
|||||||
+cd $(abspath $(TOP))/riscv-tools; RISCV=$(abspath $(RISCV)) ./build.sh
|
+cd $(abspath $(TOP))/riscv-tools; RISCV=$(abspath $(RISCV)) ./build.sh
|
||||||
touch $@
|
touch $@
|
||||||
|
|
||||||
# Builds the verilog RTL simulator
|
# Builds the various simulators
|
||||||
stamps/vsim.stamp: stamps/submodules.stamp
|
stamps/$(CONFIG)/%-ndebug.stamp: stamps/submodules.stamp stamps/tools.stamp
|
||||||
mkdir -p $(dir $@)
|
mkdir -p $(dir $@)
|
||||||
$(MAKE) -C $(abspath $(TOP))/vsim CONFIG=$(CONFIG) RISCV=$(abspath $(RISCV))
|
$(MAKE) -C $(abspath $(TOP))/$(patsubst stamps/$(CONFIG)/%-ndebug.stamp,%,$@) CONFIG=$(CONFIG) RISCV=$(abspath $(RISCV))
|
||||||
touch $@
|
touch $@
|
||||||
|
|
||||||
# Runs some tests using the verilog RTL simulator
|
stamps/$(CONFIG)/%-debug.stamp: stamps/submodules.stamp stamps/tools.stamp
|
||||||
stamps/vsim-asm-tests.stamp: stamps/vsim.stamp stamps/tools.stamp stamps/submodules.stamp
|
|
||||||
mkdir -p $(dir $@)
|
mkdir -p $(dir $@)
|
||||||
$(MAKE) -C $(abspath $(TOP))/vsim CONFIG=$(CONFIG) RISCV=$(abspath $(RISCV)) run-asm-tests
|
$(MAKE) -C $(abspath $(TOP))/$(patsubst stamps/$(CONFIG)/%-debug.stamp,%,$@) CONFIG=$(CONFIG) RISCV=$(abspath $(RISCV)) debug
|
||||||
touch $@
|
touch $@
|
||||||
|
|
||||||
stamps/vsim-bmark-tests.stamp: stamps/vsim.stamp stamps/tools.stamp stamps/submodules.stamp
|
# Runs tests on one of the simulators
|
||||||
|
stamps/$(CONFIG)/%-asm-tests.stamp: stamps/$(CONFIG)/%-ndebug.stamp stamps/tools.stamp stamps/submodules.stamp
|
||||||
mkdir -p $(dir $@)
|
mkdir -p $(dir $@)
|
||||||
$(MAKE) -C $(abspath $(TOP))/vsim CONFIG=$(CONFIG) RISCV=$(abspath $(RISCV)) run-bmark-tests
|
$(MAKE) -C $(abspath $(TOP))/$(patsubst stamps/$(CONFIG)/%-asm-tests.stamp,%,$@) CONFIG=$(CONFIG) RISCV=$(abspath $(RISCV)) run-asm-tests
|
||||||
|
touch $@
|
||||||
|
|
||||||
|
stamps/$(CONFIG)/%-bmark-tests.stamp: stamps/$(CONFIG)/%-ndebug.stamp stamps/tools.stamp stamps/submodules.stamp
|
||||||
|
mkdir -p $(dir $@)
|
||||||
|
$(MAKE) -C $(abspath $(TOP))/$(patsubst stamps/$(CONFIG)/%-bmark-tests.stamp,%,$@) CONFIG=$(CONFIG) RISCV=$(abspath $(RISCV)) run-bmark-tests
|
||||||
touch $@
|
touch $@
|
||||||
|
Loading…
Reference in New Issue
Block a user