Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move REBAR to master #97

Closed
wants to merge 143 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
143 commits
Select commit Hold shift + click to select a range
2def0df
change dir structure
alonamid Mar 7, 2019
2e7791a
add chisel and firrtl submodules
alonamid Mar 8, 2019
4d62a2b
docs placeholder
alonamid Mar 8, 2019
6ccb3de
add toolchains
alonamid Mar 8, 2019
49ab106
docs placeholder
alonamid Mar 8, 2019
8227310
makefile changes/split | add scripts
abejgonzalez Mar 9, 2019
2c246af
rename makefiles | move verilog rule to common.mk
abejgonzalez Mar 9, 2019
4fd1bfb
delete .ctags (have the user put this in their home)
abejgonzalez Mar 9, 2019
c364869
default to .gitignoring all files in verisim/vsim | read verilator.mk
abejgonzalez Mar 9, 2019
e33f2fc
find now follows symlinks
abejgonzalez Mar 12, 2019
87f9c14
Merge pull request #54 from ucb-bar/misc-changes
abejgonzalez Mar 16, 2019
319d2fe
more docs
alonamid Mar 16, 2019
ffee1f1
Bump barstools and re-add infer-rw for better SRAM mapping
colinschmidt Mar 18, 2019
419d412
Merge pull request #59 from ucb-bar/rebar-srams-fix
alonamid Mar 18, 2019
31e30b2
change dir structure
alonamid Mar 7, 2019
eb44ae1
makefile changes/split | add scripts
abejgonzalez Mar 9, 2019
8b899c5
rename makefiles | move verilog rule to common.mk
abejgonzalez Mar 9, 2019
d80acd8
added boom and torture | added csmith
abejgonzalez Mar 9, 2019
f453693
rename build.sh and move to scripts
abejgonzalez Mar 9, 2019
30ef609
allow sbt runMain from sbt subproject
abejgonzalez Mar 9, 2019
7d887b2
align rebar with tip of project-template master | fixes build issues
abejgonzalez Apr 17, 2019
68b2da6
update boom | match build.sbt
abejgonzalez Apr 17, 2019
80cbdd1
Merge remote-tracking branch 'origin/rebar-dev-align' into boom-add
abejgonzalez Apr 17, 2019
885c5f7
bump boom/firrtl | support building boom | update genfiles in simulat…
abejgonzalez Apr 18, 2019
e71bf21
Update README | add shortcut to build boom
abejgonzalez Apr 18, 2019
5b8eb27
Merge pull request #67 from ucb-bar/rebar-dev-align
abejgonzalez Apr 18, 2019
adb8897
add firrtl dependency to build.sbt | point to different firrtl jar | …
abejgonzalez Apr 18, 2019
e8d263c
Merge remote-tracking branch 'origin/rebar-dev' into boom-add
abejgonzalez Apr 18, 2019
46f2cd3
remove debug firrtl prints
abejgonzalez Apr 18, 2019
739fcec
remove csmith scripts
abejgonzalez Apr 18, 2019
7faaa56
revert condDependsOn | put new firrtl jar into rocket
abejgonzalez Apr 18, 2019
e4aa81b
fix make clean
abejgonzalez Apr 18, 2019
6bff4c7
Merge pull request #68 from ucb-bar/rebar-dev-clean
alonamid Apr 18, 2019
eec137e
make tapeout depend on testchipip for resources
abejgonzalez Apr 18, 2019
daed74b
lowercase readme
abejgonzalez Apr 19, 2019
b65c2a6
Merge pull request #55 from ucb-bar/boom-add
abejgonzalez Apr 19, 2019
e9ed534
add sifive blocks | add rebar configs for boom
abejgonzalez Apr 20, 2019
c0b0e29
removed boom package and combined into example | removed example from…
abejgonzalez Apr 21, 2019
b8eadb9
add back example to rocket system
abejgonzalez Apr 21, 2019
eda0b11
more default subprojects | fix example builds
abejgonzalez Apr 21, 2019
668047e
added GPIO config | breaks on building test harness
abejgonzalez Apr 21, 2019
180a2ab
harness builds with gpio tied off
abejgonzalez Apr 21, 2019
47149a0
change smallboom to boomconfig
abejgonzalez Apr 22, 2019
0278845
separated mixins from configs
abejgonzalez Apr 22, 2019
f11901a
added configmixin file
abejgonzalez Apr 22, 2019
0e5e1ba
fix test harness builds
abejgonzalez Apr 23, 2019
2bd7093
support verilator | rename build variable
abejgonzalez Apr 23, 2019
c1a0916
add asm/bmark tests to generator
abejgonzalez Apr 23, 2019
862c217
allow rocket builds | asm tests pass
abejgonzalez Apr 23, 2019
978832d
added bootrom symlink to support rocket
abejgonzalez Apr 23, 2019
a3516a3
Merge pull request #69 from ucb-bar/rebar-dev-boom
abejgonzalez Apr 23, 2019
e0d1ba2
Add Hwacha config to example project
jerryz123 Apr 23, 2019
017a3c2
support rocketchip longname from generator | extra comments | subproj…
abejgonzalez Apr 24, 2019
4c3dc08
update make variable names | change hwacha to use its own generator
abejgonzalez Apr 24, 2019
575980e
track src changes correctly in make
abejgonzalez Apr 24, 2019
b88937b
Fix vcs tests for rocketchip and hwacha
jerryz123 Apr 25, 2019
eedaede
add basic regression script
abejgonzalez Apr 25, 2019
8d190ee
do subprojects first
abejgonzalez Apr 25, 2019
91ea259
better exits
abejgonzalez Apr 25, 2019
00a0d99
Merge pull request #73 from ucb-bar/rebar-regression
abejgonzalez Apr 25, 2019
2e53de6
Allow default configs for sub projects | have separate build_dir base…
jerryz123 Apr 25, 2019
fa0cc26
Remove references to VCS in variables.mk
jerryz123 Apr 29, 2019
758993d
Merge pull request #71 from ucb-bar/rebar_dev_hwacha
abejgonzalez Apr 30, 2019
2f2243d
Minor Makefile fixes
jerryz123 May 8, 2019
cf9ef97
Fix verilator clean
jerryz123 May 8, 2019
c18a29a
Merge pull request #78 from ucb-bar/make_fixes
abejgonzalez May 8, 2019
17bc3bf
Decouple SUB_PROJECT builds from example
jerryz123 May 10, 2019
db8b8f5
Move example/utilities to generator directory
jerryz123 May 10, 2019
ca36780
Add verilator_install make target for CI purposes
jerryz123 May 11, 2019
533839c
Merge pull request #79 from ucb-bar/rebar_reorg
jerryz123 May 11, 2019
01067df
Update build.sbt with correct locations of example/utilities
jerryz123 May 11, 2019
a4d4101
Fix bootrom symlink, update .gitignore to only ignore bootrom directory
jerryz123 May 11, 2019
0d6a23b
Merge pull request #80 from ucb-bar/rebar-bootrom-fix
jerryz123 May 11, 2019
462d3de
Fix pointer to emulator.cc in GenerateSimFiles
jerryz123 May 12, 2019
0caf108
Merge pull request #81 from ucb-bar/rebar-dev-verisim-fix
abejgonzalez May 12, 2019
340ed90
Remove permissive flag for verisim
jerryz123 May 12, 2019
d0128d8
Merge pull request #83 from ucb-bar/rebar-verisim-fix
abejgonzalez May 12, 2019
e5d9f53
initial ci commit
abejgonzalez May 12, 2019
2dbe087
have toolchain script point to rebar correctly
abejgonzalez May 12, 2019
2259952
rename the workflow
abejgonzalez May 12, 2019
1ef6876
remove old boom references | build-toolchain rebar directory fix
abejgonzalez May 12, 2019
e109831
more renaming | proper place to git submodule update
abejgonzalez May 12, 2019
9f7f94b
parallelize toolchain builds with verilator
abejgonzalez May 12, 2019
8f34263
need riscv-tools for verilator build
abejgonzalez May 12, 2019
1a6a5ea
correct dependencies for runs
abejgonzalez May 12, 2019
e35d299
store all source/collateral when moving to test run
abejgonzalez May 12, 2019
b2d4603
add status badge for master | add ci readme | add more benchmark tests
abejgonzalez May 12, 2019
e1292fd
revert to smaller boom config and support in ci
abejgonzalez May 12, 2019
2697cdc
add small config string to config.yml
abejgonzalez May 12, 2019
2d644f1
make hwacha smaller
abejgonzalez May 13, 2019
1226591
use example config for hwacha (otherwise use other hwacha params)
abejgonzalez May 13, 2019
a377c52
smaller rocket For hwacha ci
abejgonzalez May 13, 2019
7ba56b5
for now just support verilog build of hwacha (no tests run on it)
abejgonzalez May 13, 2019
59acd68
clearer job naming for verilog only hwacha
abejgonzalez May 13, 2019
deccae4
hwacha depends on esp-tools | support java args
abejgonzalez May 14, 2019
9f4fdcc
readthedocs config
alonamid May 15, 2019
04c5fcf
readthedocs fix
alonamid May 15, 2019
2ca18a4
docs
alonamid May 15, 2019
86e2e5c
docs theme
alonamid May 15, 2019
a7822e1
Merge pull request #82 from ucb-bar/ci-setup
abejgonzalez May 15, 2019
f5c1918
more docs
alonamid May 16, 2019
d091fe8
fix docs
alonamid May 16, 2019
e0aed90
subtitles
alonamid May 16, 2019
fa1c4ae
reduce amount of sbt calls for sim
abejgonzalez May 17, 2019
7e1365f
more docs skeleton
alonamid May 17, 2019
a7a4dd3
Bump to May rocketchip | Support for BigInt mems
jerryz123 May 13, 2019
408dbca
Bump barstools
jerryz123 May 18, 2019
2062213
Bump hwacha
jerryz123 May 18, 2019
6177191
Merge pull request #88 from ucb-bar/rebar-dev-utility-speedup
abejgonzalez May 19, 2019
65d6a90
rename output | helper rules to run binaries
abejgonzalez May 20, 2019
30d54a6
readme addition | pipe out output | renamed output files
abejgonzalez May 21, 2019
cc0d33e
updated permissive naming | small bugfix for vcd/vpd dumping
abejgonzalez May 21, 2019
ad27036
Merge pull request #91 from ucb-bar/rebar-dev-renaming-help
abejgonzalez May 21, 2019
1bf27d0
Bump boom
jerryz123 May 22, 2019
bc54b24
Merge pull request #84 from ucb-bar/rebar-rc-may
jerryz123 May 22, 2019
8b3fef8
first attempt at heter. port
abejgonzalez May 21, 2019
cae63ad
working heterogenous cores
abejgonzalez May 21, 2019
e538e33
updated boom for fixes \ better printf
abejgonzalez May 21, 2019
838a34b
move subsystem to boom | misc cleanup | bump boom
abejgonzalez May 24, 2019
9182c13
update boom | fix comments and remove extra code
abejgonzalez May 24, 2019
612aa48
remove extra imports
abejgonzalez May 24, 2019
6d622e7
add boomrocketexample to ci
abejgonzalez May 24, 2019
f071b52
ci harness fix for boomexample
abejgonzalez May 24, 2019
5408d6e
bump boom
abejgonzalez May 24, 2019
4af9ea9
make default flags include timeout | all sims share flags
abejgonzalez May 24, 2019
08dd5b5
update boom to master
abejgonzalez May 25, 2019
c341ffe
remove verbose for default
abejgonzalez May 25, 2019
c19855b
shared heter-subsystem | single example SUB_PROJECT
abejgonzalez May 26, 2019
dde22a9
add more to docs | 1st spelling pass | more links | proper formatting
abejgonzalez May 27, 2019
0f34247
add section on where to find verilog
abejgonzalez May 27, 2019
3b14ac8
minor fixes to links | misc cleanup
abejgonzalez May 28, 2019
ee62fa8
renamed classes to BoomRocket to clarify | clearer comments | readd t…
abejgonzalez May 28, 2019
d51ab9c
only change default SIM_FLAGS | revert .run and .out flags
abejgonzalez May 28, 2019
c160f59
spelling check | better heading for accelerators
abejgonzalez May 28, 2019
540afea
fix config naming
abejgonzalez May 28, 2019
ddc962b
Merge pull request #96 from ucb-bar/rebar-dev-docs-update
abejgonzalez May 28, 2019
45cacd5
Merge pull request #92 from ucb-bar/rebar-dev-heter-multicore
abejgonzalez May 28, 2019
c5c446f
Merge pull request #93 from ucb-bar/rebar-dev-default-sim-flags
abejgonzalez May 28, 2019
7e6591b
add multi-rocc and show small example
abejgonzalez May 25, 2019
41b4637
build and name hwacha correctly
abejgonzalez May 25, 2019
4ad54ce
use varargs instead of seq
abejgonzalez May 27, 2019
fa080b7
fix top level naming
abejgonzalez May 28, 2019
767e59f
Merge pull request #95 from ucb-bar/rebar-dev-multirocc
abejgonzalez May 28, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions .circleci/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
REBAR CI
========

Website: https://circleci.com/gh/ucb-bar/project-template

CircleCI Brief Explanation
---------------------------

CircleCI is controlled by the `config.yml` script.
It consists of a *workflow* which has a series of *jobs* within it that do particular tasks.
All jobs in the workflow must pass for the CI run to be successful.

At the bottom of the `config.yml` there is a `workflows:` section that specifies the order in which the jobs of the workflow should run.
For example:

- prepare-rocketchip:
requires:
- install-riscv-toolchain
- install-verilator

This specifies that the `prepare-rocketchip` job needs the `install-riscv-toolchain` and `install-verilator` steps to run before it can run.

All jobs in the CI workflow are specified at the top of `config.yml`
They specify a docker image to use (in this case a riscv-boom image since that is already available and works nicely) and an environment.
Finally, in the `steps:` section, the steps are run sequentially and state persists throughout a job.
So when you run something like `checkout` the next step has the checked out code.
Caching in the job is done by giving a file to cache on.
`restore_cache:` loads the cache into the environment if the key matches while `save_cache:` writes to the cache with the key IF IT IS NOT PRESENT.
Note, if the cache is already present for that key, the write to it is ignored.
Here the key is built from a string where the `checksum` portion converts the file given into a hash.

.circleci directory
-------------------

This directory contains all the collateral for the REBAR CI to work.
The following is included:

build-toolchains.sh # build either riscv-tools or esp-tools
build-verilator.sh # build verilator
create-hash.sh # create hashes of riscv-tools/esp-tools so circleci caching can work
do-rtl-build.sh # use verilator to build a sim executable
config.yml # main circleci config script to enumerate jobs/workflows

How things are setup for REBAR
------------------------------

The steps for CI to run are as follows.
1st, build the toolchains in parallel (note: `esp-tools` is currently not used in the run).
The docker image sets up the `PATH` and `RISCV` variable so that `riscv-tools` is the default (currently the `env.sh` script that is created at tool build is unused).
2nd, install verilator using the `*.mk` to cache unique versions of verilator (mainly for if verilator is bumped).
3rd, create the simulator binary.
This requires the `riscv-tools` for `fesvr` and `verilator` to be able to build the binary.
This stores all collateral for the tests (srcs, generated-srcs, sim binary, etc) to run "out of the gate" in the next job (make needs everything or else it will run again).
4th, finally run the tests that were wanted.
15 changes: 15 additions & 0 deletions .circleci/build-toolchains.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/bin/bash

# create the riscv tools/esp tools binaries
# passed in as <riscv-tools or esp-tools>

# turn echo on and error on earliest command
set -ex

if [ ! -d "$HOME/$1-install" ]; then

cd $HOME/

# init all submodules including the tools
REBAR_DIR=$HOME/project ./project/scripts/build-toolchains.sh $1
fi
15 changes: 15 additions & 0 deletions .circleci/build-verilator.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/bin/bash

# build verilator

# turn echo on and error on earliest command
set -ex

cd $HOME/project

cd sims/verisim

if [ ! -d "$HOME/project/sims/verisim/verilator" ]; then
# make verilator
make verilator_install
fi
Loading