If the *.jar is up-to-date SBT assembly will not touch the *.jar file causing downstream make recipes to not have an updated timestamp for the *.jar file.
Co-authored-by: Abraham Gonzalez <abe.gonzalez@berkeley.edu>
Co-authored-by: Björn Gottschall <info@gottschall.no>
Co-authored-by: David Metz <david.c.metz@ntnu.no>
Includes improvements to post-synth simulations:
- Added a `QUICK` strategy which tries to get Vivado to run fast, yet still helps us reproduce failures
- Limited Vivado to 1 thread to mitigate flakyness from parallel synthesis
- The harness now explicitly waits for GSR
- Integrated post-synth metasims with the harness. Setting `TEST_DISABLE_VIVADO=1` in the environment disables these tests even if Vivado is available.
Co-authored-by: Nandor Licker <nandorl@sifive.com>
This PR adds make rules to get the post-synth RTL out of vivado and build a VCS simulator out of it.
On VCS, a 150ns startup delay is hard-wired on all simulation modes to yield identical waveforms.
The delay is required to initialize vivado gate-level libraries.
Co-authored-by: Nandor Licker <nandorl@sifive.com>
The default arguments to FASED memory models are now passed alongside other FASED bridge arguments.
These defaults can be overriden by other args passed to the bridge driver or disabled when the raw hardware configuration is requested.
The manager can still pass an optional runtime config to the design to override arguments.
* adding scalaFix to the projecting, using two make targets, `scala-lint` and `scala-lint-check`
* adding documentation
Co-authored-by: David Biancolin <david.biancolin@sifive.com>
This PR adds a new make target, `clang-tidy` to run clang-tidy on all C++ sources.
Only a dummy check is enabled, as this patch applies the minimal number of fixes
to compile headers and sources with clang without the header. In a subsequent PR,
more checks will be enabled and the files will be formatted.
`clang-tidy` can be executed using `make -C sim clang-tidy`. It will automatically
apply fixes to known issues.
The build system includes 3 targets caching the classpath containing compiled jars to be used by subsequent java invocations, fully bypassing the slow sbt setup on repeated invocations to SBT.