Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ucb-substrate/substrate
21st century electronic design automation tools, written in Rust.
https://github.com/ucb-substrate/substrate
Last synced: 2 months ago
JSON representation
21st century electronic design automation tools, written in Rust.
- Host: GitHub
- URL: https://github.com/ucb-substrate/substrate
- Owner: ucb-substrate
- License: bsd-3-clause
- Created: 2023-04-10T01:37:10.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-02T23:33:14.000Z (3 months ago)
- Last Synced: 2024-11-03T00:19:44.581Z (3 months ago)
- Language: Rust
- Size: 3.69 MB
- Stars: 9
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Substrate
21st century design automation tools.
## Installation/Usage
Substrate is a library, and cannot be run by itself.
To use Substrate, [install Rust](https://www.rust-lang.org/tools/install),
clone this repository, and then add `substrate` as a dependency in your project's Cargo.toml:```toml
[dependencies]
substrate = { path = "/path/to/substrate" }
```Ensure that your `~/.cargo/config.toml` file contains the following lines:
```toml
[net]
git-fetch-with-cli = true
```Substrate is developed and tested using the latest version of Rust.
Please note that all APIs are under development and may change without warning.
## Documentation
The Substrate API documentation can be generated by running
```bash
cargo doc --open
```
(omit the `--open` flag if you don't want to automatically open the docs).To include internal/private APIs in the generated documentation, run
```bash
cargo doc --document-private-items
```## Testing
Before running the tests, you must:
* Install [ngspice](https://ngspice.sourceforge.io/) v39 and add it to your `PATH`.
* Clone the [skywater-pdk](https://github.com/google/skywater-pdk) repository and set
the `SKY130_OPEN_PDK_ROOT` environment variable to point to the root of the repository.
We recommend using an absolute path.
* Ensure that the submodules in `skywater-pdk/libraries/*` are present on your system.To run the Substrate tests (both unit and integration tests), run
```bash
make test
```from the root of the Substrate repository.
Substrate integration tests can be found in `substrate/tests`.
These tests double as examples of how to use Substrate.
If you wish to see the artifacts generated by an integration test,
look in the appropriate folder in `substrate/build/tests`.## Contributing
If you'd like to contribute to Substrate, please let us know. You can:
* Ping us in the `#substrate` channel in the Berkeley Architecture Research Slack workspace.
* Open an issue.
* Email `rahulkumar -AT- berkeley -DOT- edu`.Documentation updates, tests, and bugfixes are always welcome.
For larger feature additions, please discuss your ideas with us before implementing them.Contributions can be submitted by opening a pull request against the `main` branch
of this repository.Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion
in the work by you shall be licensed under the BSD 3-Clause license, without any additional terms or conditions.## Acknowledgements
Portions of Substrate are derived from the [Vlsir](https://github.com/Vlsir/Vlsir)
and [Layout21](https://github.com/dan-fritchman/Layout21) projects, which were
written by Dan Fritchman, Arya Reais-Parsi, Aviral Pandey, and others.
These projects are licensed under the BSD-3-Clause license.