diff --git a/common.mk b/common.mk index 1fa626cf..1b756089 100644 --- a/common.mk +++ b/common.mk @@ -56,6 +56,7 @@ include $(base_dir)/generators/cva6/cva6.mk include $(base_dir)/generators/tracegen/tracegen.mk include $(base_dir)/generators/nvdla/nvdla.mk include $(base_dir)/tools/dromajo/dromajo.mk +include $(base_dir)/tools/torture.mk ######################################################################################### # Prerequisite lists diff --git a/docs/Advanced-Concepts/Debugging-RTL.rst b/docs/Advanced-Concepts/Debugging-RTL.rst index 6831cc4a..79b9428e 100644 --- a/docs/Advanced-Concepts/Debugging-RTL.rst +++ b/docs/Advanced-Concepts/Debugging-RTL.rst @@ -83,8 +83,20 @@ Torture tests The RISC-V torture utility generates random RISC-V assembly streams, compiles them, runs them on both the Spike functional model and the SW simulator, and verifies identical program behavior. The torture utility can also be configured to run -continuously for stress-testing. The torture utility exists within the ``utilities`` -directory. +continuously for stress-testing. The torture utility exists within the ``tools`` +directory. To run torture tests, run ``make`` in the simulation directories: + +.. code-block:: shell + + make CONFIG=CustomConfig torture + +To run overnight tests (repeated random tests), run + +.. code-block:: shell + + make CONFIG=CustomConfig TORTURE_ONIGHT_OPTIONS= torture-overnight + +You can find the overnight options in `overnight/src/main/scala/main.scala` in the torture repo. Firesim Debugging --------------------------- diff --git a/toolchains/esp-tools/riscv-isa-sim b/toolchains/esp-tools/riscv-isa-sim index 467da4f6..34741e07 160000 --- a/toolchains/esp-tools/riscv-isa-sim +++ b/toolchains/esp-tools/riscv-isa-sim @@ -1 +1 @@ -Subproject commit 467da4f613e2a447af35e69ee4f14e5adc94664f +Subproject commit 34741e07bc6b56f1762ce579537948d58e28cd5a diff --git a/toolchains/riscv-tools/riscv-isa-sim b/toolchains/riscv-tools/riscv-isa-sim index bf4b1e09..ce42f1b5 160000 --- a/toolchains/riscv-tools/riscv-isa-sim +++ b/toolchains/riscv-tools/riscv-isa-sim @@ -1 +1 @@ -Subproject commit bf4b1e09ed8e7a11ecff9891b12ce5d7f3375722 +Subproject commit ce42f1b55a3fa5a3a522439b5370be2256f68862 diff --git a/tools/torture b/tools/torture index 59b0f0f2..b2b66a66 160000 --- a/tools/torture +++ b/tools/torture @@ -1 +1 @@ -Subproject commit 59b0f0f224ff4f1eb6ebb1b4dd7eaf1ab3fac2e5 +Subproject commit b2b66a66d51b360e0ae95017774d03377c78c574 diff --git a/tools/torture.mk b/tools/torture.mk new file mode 100644 index 00000000..33bf98f6 --- /dev/null +++ b/tools/torture.mk @@ -0,0 +1,18 @@ +HELP_COMMANDS += \ +" torture = run torture on the RTL testbench" \ +" torture-overnight = run torture overnight tests (set TORTURE_ONIGHT_OPTIONS to pass test options)" + +######################################################################################### +# run torture rules +######################################################################################### +.PHONY: torture torture-overnight + +torture: $(output_dir) $(sim) + $(MAKE) -C $(base_dir)/tools/torture/output clean + $(MAKE) -C $(base_dir)/tools/torture R_SIM=$(sim) gen rtest + cp -r $(base_dir)/tools/torture/output $(output_dir)/torture + rm $(output_dir)/torture/Makefile + +TORTURE_ONIGHT_OPTIONS := +torture-overnight: $(output_dir) $(sim) + $(MAKE) -C $(base_dir)/tools/torture R_SIM=$(sim) OPTIONS="$(TORTURE_ONIGHT_OPTIONS)" rnight