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)
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
* [ariane/make] integrate ariane | have verilator be installed on path not in makefile
* [misc] warn on verilator not found | search for v files | cleanup build.sbt + .gitignore
* [firesim] bump
* [ci] add midas ariane tests
* [docker/ci] use new docker-image with verilator | re-elab on v changes for ariane | address comments
* [ci] remove references to local verilator install
* [verilator] update flags
* [verilator] minimal set of flags for ariane
* [ariane] bump ariane to master
* [ci] revert to 4.016 verilator
* [ci] install verilator to ci server | misc compile fixes
* [ci/make] add longer ci timeout | update when assert is added in verilator sim
* [firesim] bump for misc. updates
* [make/ci] cleanup makefile and remove firesim tests of it
* [docs/firesim] bump and clean docs
* [firesim] bump
* [ci] use remote verilator for midas tests
* [misc] cleanup built.sbt more
* [firesim] bump
* [misc] bump build.sbt patch for tutorials
* [firesim/ci] cleanup and bump firesim
* Fixes#453
- Update scripts/init-submodules-no-riscv-tools.sh to also work if you're in scripts/
- Provide a git version check to ensure the init scripts will work (>= 1.7.8)
- Update the documentation to be more explicit that the init script is also for updating.
* Update scripts/init-submodules-no-riscv-tools-nolog.sh
Co-Authored-By: Albert Ou <aou@eecs.berkeley.edu>
generator to include the software workloads (moved from marshal). As a
result, the sha3 generator submodule is not initialized by default
(because it now has a copy of linux).
GNU make 4.x is needed to cross-compile glibc 2.28 and newer.
This ensures the problem is caught earlier on CentOS release 7.6, whose
default make version remains 3.82.
This allows individual components to be better maintained following the
deprecation of riscv-tools. Eliminate non-essential submodules.
build-static-libfesvr.sh is no longer necessary since libfesvr.a is
built as part of the riscv-isa-sim build.
For simplicity, only riscv-gnu-toolchain is now pre-built instead of the
entirety of riscv-tools.