Skip to content

Latest commit

 

History

History
71 lines (49 loc) · 3.21 KB

README.md

File metadata and controls

71 lines (49 loc) · 3.21 KB

OpenLane MPW CI

CI-Large-Job-1 CI-Small-Job-1 CI-Small-Job-2

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 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

Also you can view current CI design description here.

CI results

You can find the results for each shuttle here.

Adding new designs to CI

Add project as a submodule

Add the design repository as a submodule.

git submodule add <PROJECT_URL> ./designs/<PROJECT_NAME>

Create configuration files

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.

Local validation

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.

Include designs into Jenkins

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.