OpenROAD is committed to continuously improving software quality and robustness since it is the key engine for OpenLane and potentially other open-source flow controllers.
This primarily hinges on two main goals:
- Ensuring broad coverage for design size and functionality
- Catching and fixing software and tool problems earlier in the development cycle
OpenROAD deploys a CI (continuous integration) system using Jenkins that leverages the Google Cloud Platform (GCP) infrastructure. The CI part of the system uses regression tests with new designs being constantly added to test both new and existing features for coverage and backward compatibility. Furthermore, regression tests include unit tests run at tool-level as well flow-level considering QoR using key metrics. Refer to the link here to learn about metrics and here for the latest updates to OpenROAD metrics.
The CI features the use of dynamic and static code analysis tools to check code quality and flag common programmatic issues. Given both the size of The OpenROAD Project and the problem we are attacking (24 hr No-Human-In-Loop RTL-GDSII flow execution while breaking down cost, expertise and risk barriers), the use of a cloud platform like GCP is paramount to guarantee that jobs finish in a timely manner. Thanks to #Google for their support with resources and expertise in enabling the project to deliver cloud computing to OpenROAD.
OpenLane is used to create silicon-ready designs in Skywater 130nm as part of #Google #Efabless and #ChipIgnite program. A large number of users use OpenLane to create designs as part of the popular shuttle program on a time-bound and strict process-oriented basis. Hence, it is important to ensure that they are able to leverage the capabilities of OpenROAD in a reliable manner to complete their designs.
To address this important objective, OpenROAD updates its internal regression test suite periodically by directly adding stable and successful MPW shuttle designs to its CI. This is now part of a public repository in the OpenROAD Project here: https://github.com/The-OpenROAD-Project/OpenLane-MPW-CI
Currently, there are > 80 designs in CI which roughly constitutes about 72% of the total digital designs in MPW shuttles (2-4). These designs range from simple logic cores to more complex SoCs containing macros, RAMS along with standard cell-based logic across the design hierarchy.
Designers can submit their projects as pull requests (PRs) to the repository. Contributing representative designs to our CI ensures that users can achieve better results over time as our tool continues to improve.