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 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 | MPW-3 | MPW-4 | MPW-5 | MPW-6 | MPW-7 | MPW-8
Also you can view current CI design description here.
You can find the results for each shuttle here.
Add the design repository as a submodule.
git submodule add <PROJECT_URL> ./designs/<PROJECT_NAME>
For each design in your project, you will need to create a folder under scripts.
mkdir ./scripts/<DESIGN_NAME>
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 and setup-flow.sh.
Setup OpenLane and necessary PDKs.
./scripts/setup-ci.sh <OPENLANE_TAG>
Run the design.
./scripts/run-design.sh [<PROJECT_NAME>] <DESIGN_NAME>
Note <PROJECT_NAME>
must be the same used in the "Add project as a submodule" section
and <DESIGN_NAME>
must match the folder created in the "Create configuration files" section.
If both names match, only one argument is necessary.
Add the design to the test list at the Jenkinsfile.
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.