Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/the-openroad-project/openlane-mpw-ci
https://github.com/the-openroad-project/openlane-mpw-ci
Last synced: 4 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/the-openroad-project/openlane-mpw-ci
- Owner: The-OpenROAD-Project
- License: bsd-3-clause
- Created: 2022-02-16T16:23:59.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-08T22:01:15.000Z (2 months ago)
- Last Synced: 2024-09-08T23:19:37.679Z (2 months ago)
- Language: Shell
- Size: 374 KB
- Stars: 15
- Watchers: 4
- Forks: 5
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# OpenLane MPW CI
[![CI-Large-Job-1](https://jenkins.openroad.tools/job/OpenLane-MPW-CI-Public/job/production-large-1/job/main/badge/icon?subject=CI-Large-Job-1)](https://jenkins.openroad.tools/job/OpenLane-MPW-CI-Public/job/production-large-1/job/main/)
[![CI-Small-Job-1](https://jenkins.openroad.tools/job/OpenLane-MPW-CI-Public/job/production-small-1/job/main/badge/icon/?subject=CI-Small-Job-1)](https://jenkins.openroad.tools/job/OpenLane-MPW-CI-Public/job/production-small-1/job/main/)
[![CI-Small-Job-2](https://jenkins.openroad.tools/job/OpenLane-MPW-CI-Public/job/production-small-2/job/main/badge/icon/?subject=CI-Small-Job-2)](https://jenkins.openroad.tools/job/OpenLane-MPW-CI-Public/job/production-small-2/job/main/)
[![CI-Small-Job-3](https://jenkins.openroad.tools/job/OpenLane-MPW-CI-Public/job/production-small-3/job/main/badge/icon/?subject=CI-Small-Job-3)](https://jenkins.openroad.tools/job/OpenLane-MPW-CI-Public/job/production-small-3/job/main/)
[![CI-Small-Job-4](https://jenkins.openroad.tools/job/OpenLane-MPW-CI-Public/job/production-small-4/job/main/badge/icon/?subject=CI-Small-Job-4)](https://jenkins.openroad.tools/job/OpenLane-MPW-CI-Public/job/production-small-4/job/main/)## Description
The OpenLane MPW CI repo contains a regression test to ensure that new versions of OpenLane and OpenROAD continue to work on the efabless MPW designs.
[Efabless](https://platform.efabless.com/projects/public) MPW shuttle Pre-Check has passed on these digital designs. These designs use openlane as
part of macro hardening`(user_proj_example)` or design wrapping`(user_project_wrapper)`.Following MPW shuttle designs included as part of CI:
[MPW-2](https://platform.efabless.com/shuttles/MPW-2) |
[MPW-3](https://platform.efabless.com/shuttles/MPW-3) |
[MPW-4](https://platform.efabless.com/shuttles/MPW-4) |
[MPW-5](https://platform.efabless.com/shuttles/MPW-5) |
[MPW-6](https://platform.efabless.com/shuttles/MPW-6) |
[MPW-7](https://platform.efabless.com/shuttles/MPW-7) |
[MPW-8](https://platform.efabless.com/shuttles/MPW-8)Also you can view current CI design description [here](./designs/README.md).
## CI results
You can find the results for each shuttle
[here](https://jenkins.openroad.tools/blue/pipelines/?search=mpw).## Adding new designs to CI
### Add project as a submodule
Add the design repository as a submodule.
```bash
git submodule add ./designs/
```### Create configuration files
For each design in your project, you will need to create a folder under [scripts](./scripts).
```bash
mkdir ./scripts/
```Inside the folder, a minimum of two files are required `config.tcl` and `setup-flow.sh`.
The `setup-flow.sh` file is called before the OpenLane flow begins, e.g., if your design has external dependencies or requires unpacking GDS files.
The `config.tcl` file setups variables used during OpenLane flow and then starts the flow.
Example files are available here: [config.tcl](./scripts/config.tcl) and [setup-flow.sh](./scripts/setup-flow.sh).### Local validation
Setup OpenLane and necessary PDKs.
```bash
./scripts/setup-ci.sh
```Run the design.
```bash
./scripts/run-design.sh []
```Note `` must be the same used in the ["Add project as a submodule" section](#add-project-as-a-submodule)
and `` must match the folder created in the ["Create configuration files" section](#create-configuration-files).
If both names match, only one argument is necessary.### Include designs into Jenkins
Add the design to the test list at the [Jenkinsfile](./Jenkinsfile#L24).
Use the same arguments passed to `./scripts/run-design.sh`.
Note that if you have multiple designs in your project, you need to add them individually.
See the `yifive_a2` project, for example, at [Jenkinsfile](./Jenkinsfile#L87-L93).