Commit Graph

101 Commits

Author SHA1 Message Date
John Wright
1f98c84210 Add ChipTop to enable real chip configs with IO cells, etc. (#480)
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)
2020-04-01 14:03:56 -07:00
Tynan McAuley
d540899b48 Fix name of Ubuntu/Debian package "libexpat1-dev". (#466)
The "libxpat1-dev" package doesn't exist on Ubuntu/Debian, and results
in an error when installing Ubuntu/Debian dependencies.

The desired package: https://packages.ubuntu.com/bionic/libexpat1-dev

Co-authored-by: Tynan McAuley <tynan@galois.com>
2020-03-13 14:51:09 -07:00
Tynan McAuley
72dfbfabd4 Allow user to override MAKE command used by toolchain and openocd build.
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
2020-03-13 23:43:29 +02:00
Abraham Gonzalez
d0bec3fba7 Ariane Integration (#448)
* [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
2020-03-09 18:06:41 -07:00
Jerry Zhao
854e71a205 Add tutorial config and tutorial patches 2020-03-05 19:44:37 -08:00
John Wright
1e26cb1f49 Add a git version check to the init scripts and make them work outside of the repo root. (#459)
* 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>
2020-03-05 13:04:54 -08:00
Abraham Gonzalez
de2170e7a6 [setup] log init submodules (#433) 2020-02-25 21:27:53 -08:00
David Biancolin
9d45a2711e Fix generation of env.sh for ZSH (#435) 2020-02-14 23:41:14 -08:00
Nathan Pemberton
ccd6ecd418 Marhsal in chipyard (#415)
* Move firemarshal into chipyard (was in firesim)
2020-02-09 17:58:56 -08:00
Albert Ou
d7d7c79c22 scripts: Initialize firesim non-recursively (#388) 2020-01-24 09:31:41 -08:00
alonamid
cb2f48b148 System Requirements (#387)
* more system requirements

* [ci skip] system reqs PR comments

* scripts: Make {ubuntu,centos}-req.sh executable [ci skip]

* scripts: Add Ubuntu toolchain dependencies [ci skip]

* inline marshal reqs

* [skip ci] Update scripts/centos-req.sh

Co-Authored-By: Albert Ou <aou@eecs.berkeley.edu>

Co-authored-by: Albert Ou <aou@eecs.berkeley.edu>
2020-01-22 13:40:59 -08:00
Albert Ou
7059ac3f0f toolchains: Add libgloss replacement 2019-12-21 12:11:49 -08:00
Albert Ou
f71d976114 toolchains: Build libraries with medany code model
This enables bare-metal programs to link against newlib and libgcc at
addresses above 0x80000000.
2019-12-21 12:11:48 -08:00
Jerry Zhao
72f9730cbd Allow user to specify toolchain install prefix (#334) 2019-12-13 11:40:47 -08:00
abejgonzalez
2468da282e dont ctags within toolchains/sim | only ctags scala/C/C++/python files 2019-11-23 18:56:38 -08:00
Nathan Pemberton
6d2f102a7e Shallow clone sha3 2019-11-12 19:42:36 -05:00
Nathan Pemberton
6ca1715b47 Bump firemarshal to not initialize linux by default. This bumps the sha3
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).
2019-11-12 17:18:02 -05:00
Howard Mao
05af2f9a9c Fix tracegen target and add to CI 2019-10-21 09:55:40 -07:00
Abraham Gonzalez
ced4d2eea0 Merge pull request #314 from ucb-bar/master
`master` fixes into `dev`
2019-10-18 21:05:29 -04:00
abejgonzalez
c87b69fcbf fix spacing in init-submodules-no-riscv-tools.sh 2019-10-15 21:14:27 -07:00
abejgonzalez
112fe43f60 add -f flag 2019-10-14 10:36:15 -07:00
abejgonzalez
33664cf11e add a specific toolchain env 2019-10-13 08:24:57 -07:00
Albert Ou
14d2cfc751 Fix SRCDIR for qemu build
RDIR (the initial working directory) is not necessarily the top of the
chipyard source tree.
2019-10-08 02:33:28 -07:00
abejgonzalez
73252f323b Merge remote-tracking branch 'origin/dev' into alon-docs-dev 2019-10-07 19:54:12 -07:00
Nathan Pemberton
151d3f16c3 typo in command for ignoring qemu submodule 2019-10-05 00:24:31 +00:00
Nathan Pemberton
8e8ce09ce9 Move qemu to chipyard from firesim 2019-10-04 19:04:08 -04:00
Nathan Pemberton
95a44ff6d0 Switch to bash optarg for cli handling in init-submodules script 2019-10-04 17:54:33 -04:00
alonamid
1e7c57f36c fix toolchains usage 2019-10-04 00:17:12 -07:00
Nathan Pemberton
dcddf2c842 Fix typo in firesim initialization in init-submodules-no-riscv-tools.sh 2019-10-03 20:20:41 -04:00
Nathan Pemberton
41c560e5a8 Add symlink to firemarshal to software/firemarshal. Marshal still lives
in firesim for now, but can be accessed from chipyard top.
2019-10-03 18:47:04 -04:00
Albert Ou
c7b252aa09 toolchains: Check for GNU make 4.x
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.
2019-10-02 13:16:04 -07:00
Albert Ou
b4ed5eb61b toolchains: Optionally build riscv-openocd with a separate script 2019-10-02 13:16:01 -07:00
Albert Ou
2f1e5e994b toolchains: Flatten riscv-tools submodule
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.
2019-10-02 13:14:05 -07:00
Albert Ou
b0b3e016e5 scripts: Remove unnecessary experimental-blocks ignore
Polluting the global .gitconfig is not appreciated in any case.
2019-10-02 13:09:43 -07:00
Harrison Liew
cfba37afc9 bump hammer, remove saed32 2019-09-19 22:50:14 -07:00
Harrison Liew
971809a546 update submodules script 2019-09-19 22:50:14 -07:00
Harrison Liew
6179a91a29 some plumbing but still need to remove sram generator target for asap7 2019-09-19 22:50:05 -07:00
Abraham Gonzalez
3083bfd442 Merge pull request #218 from ucb-bar/ignore-docs-ci
Ignore docs in CircleCI
2019-09-04 19:49:53 -07:00
Albert Ou
4963792e98 scripts: Scale number of make jobs by hardware thread count
If the hardware thread/core count cannot be determined successfully,
avoid setting the '-j' option for make.
2019-09-01 00:03:08 -07:00
Albert Ou
cff1f6b11e scripts: Eliminate unnecessary process substitution 2019-09-01 00:01:10 -07:00
Albert Ou
9e9e7dd442 scripts: Fix latent issues with env.sh
* Ensure shell metacharacters are quoted in RISCV variable assignment.
* Avoid unnecessary expansion of $RISCV and $LD_LIBRARY_PATH at
  generation time.
* Remove undefined usage of $DTCversion.
* Simplify output redirection.
2019-09-01 00:00:50 -07:00
Albert Ou
2c2f5a76e3 scripts: Fix quoting to prevent unintended word splitting 2019-08-31 15:00:32 -07:00
Albert Ou
10b708d173 scripts: Ensure non-zero exit code on error 2019-08-31 03:18:34 -07:00
Albert Ou
40a94dd08e scripts: Parse options with getopts builtin 2019-08-31 03:18:34 -07:00
Howard Mao
0e8fb52f8d add check-tracegen.sh script 2019-08-30 11:38:07 -07:00
abejgonzalez
fc380b2dda ignore docs using a github webhook 2019-08-29 23:43:08 -07:00
Abraham Gonzalez
60f603e7c8 Safer LD_LIBRARY_PATH 2019-07-25 15:19:59 -07:00
Abraham Gonzalez
495e9d2668 Do not clobber LD_LIBRARY_PATH in env.sh 2019-07-24 23:19:18 -07:00
Howard Mao
fe45d94974 make sure git submodule update --init run from top-level directories 2019-07-22 14:58:30 -07:00
alonamid
5a7ff760d1 Merge pull request #157 from ucb-bar/toolchains2
Toolchains build update
2019-07-22 14:37:38 -07:00