-
Notifications
You must be signed in to change notification settings - Fork 616
yosys-synlig
based synthesis flow
#2280
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
Draft
jwnrt
wants to merge
23
commits into
lowRISC:master
Choose a base branch
from
jwnrt:yosys-synlig
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Changes in /vendor should be applied using a vendoring patch, or fixed upstream Signed-off-by: Harry Callahan <[email protected]>
This improves portability across different operating systems Signed-off-by: Harry Callahan <[email protected]>
There was problems running vcs simulations with this command, as something to do with launching verdi is not working correctly. It seems we are missing deps for some executable, but the error messages are really unhelpful on tracking down exactly what. This seems to work, for now. Signed-off-by: Harry Callahan <[email protected]>
This ensures any logging we do before the call to 'run_one()' will appear in the correct order in the file. Signed-off-by: Harry Callahan <[email protected]>
This is in-line with how we handle other environment variables in the build, and we set the variable inside the appropriate dictionary when invoking the command (run_rtl.py in this case).
This matches the dependencies given in the python-requirements.txt file in the repo root, but uses the pyproject.toml format and the poetry tool to allow nix to import this information to construct a python environment. The poetry.lock file allows each python dep to be pinned, and would need to be updated using the poetry tool to bump any dependency. e.g. ``` nix shell nixpkgs#poetry poetry update ```
- The default devShell has enough dependencies to run verilator simulations of Ibex - Some other dependencies are setup but yet unusued.
This adds a devShell that employees can use to bootstrap access to non-public EDA tooling. Evaluation will fail without appropriate credentials to fetch the repository 'lowrisc-nix-private'. Disclaimer: EXPERIMENTAL These shells will only be functional in the appropriate restricted environments. This is an experiment at tracking dependencies on proprietary tooling that is less out-of-band compared to simply assuming the underlying environment is pre-populated. For obvious reasons, this will always have much weaker reproducibility guarantees than freely-available software and open-source deps. However we can still lean on Nix to make bootstrapping non-public environments fast, ergonomic and hopefully reproducible within the constricted space. Using a nix flake input that is a private repository, we can effectively pin a version of the private dependencies (hash+timestamp etc) without exposing what they are. As nix is lazily evaluated, these inputs will not attempt to be fetched unless we evaluate an output which depends on them, and hence they should happily co-exist with other flake attributes for most consumers. To avoid the flake.lock in this repository from exposing the transitive deps of the private input, that flake does not track it's inputs in the standard way. Hence, impure evaluation mode is required when using these outputs. e.g. ``` nix develop .#eda_shell_lowrisc nix develop .#eda_shell_lowrisc --command bash -c \ "make -C dv/uvm/core_ibex SIMULATOR=xlm ITERATIONS=4 TEST=riscv_rand_instr_test" ``` Signed-off-by: Harry Callahan <[email protected]>
This reverts commit 5da1679. > This change is not supported by the version of sv2v used for the example > synthesis flow, so revert it for a quick fix while in draft.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
WIP changing the synthesis flow from
sv2v
to use theyosys-synlig
plugin which reads SystemVerilog directly.Based on #2156 for Nix support.