diff --git a/README.md b/README.md index 8f07c855..b03df195 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ **THIS BRANCH IS UNDER DEVELOPMENT** **IT CURRENTLY HAS MANY SUBMODULES** -**PLEASE RUN ./build.sh TO UPDATE SUBMODULES, UNLESS YOU WANT TO SPEND A LONG TIME WAITING FOR SUBMODULE TO CLONE** +**PLEASE RUN ./scripts/init-submodules-no-riscv-tools.sh TO UPDATE SUBMODULES, UNLESS YOU WANT TO SPEND A LONG TIME WAITING FOR SUBMODULE TO CLONE** This is a starter template for your custom RISC-V project. It will allow you to leverage the Chisel HDL and RocketChip SoC generator to produce a @@ -62,6 +62,26 @@ follows. * bootrom - sources for the first-stage bootloader included in the Boot ROM * src/main/scala - scala source files for your project go here +## For submodule developers + +Depending on the submodule that you develop in, you might want to run things out of the submodule. +For example, `boom` has its own Generator, package, top module, and configurations separate from +the `example` package in `src/main/scala`. Thus, to build a `boom` project you do something like +the following: + + make SBT_PROJECT=boom PROJECT=boom.system CONFIG= TOP=ExampleBoomSystem + +However, that is very long to write everytime there is a compile. Thus, a shorthand way to build +the subproject is the following: + + make SUB_PROJECT=boom CONFIG= + +This sets the proper configuration flags for make to work correctly. + +Currently, the supported `SUB_PROJECT` flags are: + + * boom - to build and run `boom` subproject configurations + ## Using the block device The default example project just provides the Rocket coreplex, memory, and diff --git a/variables.mk b/variables.mk index 4fa2ff48..df0bba10 100644 --- a/variables.mk +++ b/variables.mk @@ -12,6 +12,9 @@ # SBT_PROJECT = the SBT project that you should find the Generator class in # TB = wrapper over the TestHarness needed to simulate in VCS # TOP = top level module of the project (normally the module instantiated by the harness) +# +# project specific: +# SUB_PROJECT = use the specific subproject default variables ######################################################################################### PROJECT ?= example MODEL ?= TestHarness @@ -21,6 +24,13 @@ SBT_PROJECT ?= $(PROJECT) TB ?= TestDriver TOP ?= ExampleTop +SUB_PROJECT ?= example +ifeq ($(SUB_PROJECT),boom) # make it so that you only change 1 param to change them all! + SBT_PROJECT=boom + PROJECT=boom.system + TOP=ExampleBoomSystem +endif + ######################################################################################### # path to rocket-chip and testchipip #########################################################################################