[WIP] Minimally elaborating design
Bring up a feature-complete Chipyard stage
Pull in Makefrag generation; Bump submodules
Update config generation, and global reset scheme
Bump submodules; clean up
Bump FireSim
Remove some unhygenic comments / WS
Remove the rocketchip subproject
[CI] Lengthen ariane tests timeout
Address some remaining reviewer comments
[firechip] Refresh a Field that cannot be used across repeated instantiations
Bump all submodules
The 'debug' rule is currently cleaning out the non-debug-model directory
rather than the debug-model directory. This commit fixes that, and
changes both the debug and non-debug rules to use the variables defined
for referring to these two model directories.
Co-authored-by: Tynan McAuley <tynan@galois.com>
This adds an additional layer (ChipTop) between the System module and the TestHarness. The IOBinder API is now changed to take only a single parameter (an Any) and return a 3 things: The IO port(s), the IO cell(s), and a function to call inside the test harness, which is analogous to the old IOBinder function, except that it takes a TestHarness object as an argument instead of (clock, reset, success).
* A new Top-level module, ChipTop, has been created. ChipTop instantiates a "system" module specified by BuildSystem.
* BuildTop now builds a ChipTop dut module in the TestHarness by default
* A new BuildSystem key has been added, which by default builds DigitalTop (previously just called Top)
* The IOBinders API has changed. IOBinders are now called inside of ChipTop and return a tuple3 of (IO ports, IO cells, harness functions). The harness functions are now called inside the TestHarness (this is analogous to the previous IOBinder functions).
* IO cell models have been included in ChipTop. These can be replaced with real IO cells for tapeout, or used as-is for simulation.
* The default for the TOP make variable is now ChipTop (was Top)
* [make] split up specific make vars/targets into frags
* [make] move dramsim and max-cycles into SIM_FLAGS
* [misc] move ariane configs to configs/ folder
* WIP; Add some information on building a chip [skip ci]
* [docs] [ci skip] re-org chip/barstools docs
Also add macrocompiler flag descriptions
* [docs] Add MDF description [ci-skip]
* [docs] Address some of Abe and Harrison's feedback [ci skip]
* [docs] Update hierarchy/transform section [ci skip]
* [docs] Address all feedback except cost function [ci skip]
* [docs] Describe macro compiler cost function [ci skip]
Co-authored-by: John Wright <johnwright@eecs.berkeley.edu>
On macOS, "gnumake" and "make" are both supplied by the OS, but are too
old to build glibc (both are version 3.81 as of this writing). Homebrew
provides the "gmake" executable, which is recent enough for glibc.
However, the existing logic in "scripts/build-util.sh" will always
prefer "gnumake" over "gmake".
The configure logic in the riscv-glibc library allows a user to override
the preference for "gnumake" by setting the MAKE environment variable.
This change makes "scripts/build-openocd.sh" and
"scripts/build-toolchains.sh" mimic that behavior. A user can now use
"gmake" instead of "gnumake" during the toolchain build like so:
MAKE=gmake ./scripts/build-toolchains.sh