|
9 months ago | |
---|---|---|
.github/ISSUE_TEMPLATE | 1 year ago | |
flow | 9 months ago | |
jenkins | 10 months ago | |
tools | 9 months ago | |
.dockerignore | 10 months ago | |
.gitattributes | 1 year ago | |
.gitignore | 10 months ago | |
.gitmodules | 11 months ago | |
Dockerfile | 10 months ago | |
Jenkinsfile | 10 months ago | |
LICENSE_BUILD_RUN_SCRIPTS | 1 year ago | |
README.md | 10 months ago | |
build_openroad.sh | 9 months ago | |
setup_env.sh | 10 months ago |
The OpenROAD ("Foundations and Realization of Open, Accessible Design") project was launched in June 2018 within the DARPA IDEA program. OpenROAD aims to bring down the barriers of cost, expertise and unpredictability that currently block designers' access to hardware implementation in advanced technologies. The project team (Qualcomm, Arm and multiple universities and partners, led by UC San Diego) is developing a fully autonomous, open-source tool chain for digital layout generation across die, package and board, with initial focus on the RTL-to-GDSII phase of system-on-chip design. Thus, OpenROAD holistically attacks the multiple facets of today's design cost crisis: engineering resources, design tool licenses, project schedule, and risk.
The IDEA program targets no-human-in-loop (NHIL) design, with 24-hour turnaround time and eventual zero loss of power-performance-area (PPA) design quality. No humans means that tools must adapt and self-tune, and never get stuck: thus, machine intelligence must replace today's human intelligence within the layout generation process. 24 hours means that problems must be aggressively decomposed into bite-sized subproblems for the design process to remain within the schedule constraint. Eventual zero loss of PPA quality requires parallel and distributed search to recoup the solution quality lost by problem decomposition.
For a technical description of the OpenROAD flow, please refer to our DAC paper: Toward an Open-Source Digital Flow: First Learnings from the OpenROAD Project. Also, available from ACM Digital Library (doi:10.1145/3316781.3326334)
This repository serves as an example RTL-to-GDS flow using the OpenROAD tools. The two main components are:
tools: This directory contains the source code for the entire openroad
app (via submodules) as well as other tools required for the flow. The script
build_openroad.sh
in this repository will automatically build the OpenROAD
toolchain.
flow: This directory contains reference recipes and scripts to run | designs through the flow. It also contains platforms and test designs.
The flow has the following dependencies:
The dependencies can either be obtained from a pre-compiled build export or built manually. See the KLayout website for installation instructions.
git clone --recursive https://github.com/The-OpenROAD-Project/OpenROAD-flow.git
OpenROAD-flow/tools/OpenROAD
source setup_env.sh
This build option leverages a multi-step docker flow to install the tools and
dependencies to a runner image. To follow these instructions, you must have
docker installed, permissions to run docker, and docker container network access
enabled. This step will create a runner image tagged as openroad/flow
.
git clone --recursive https://github.com/The-OpenROAD-Project/OpenROAD-flow.git
docker
is in your PATH, then run
the docker build../build_openroad.sh
docker run -it -u $(id -u ${USER}):$(id -g ${USER}) openroad/flow bash
OpenROAD-flow/tools/OpenROAD/Dockerfile
OpenROAD-flow/tools/yosys/Dockerfile
OpenROAD-flow/tools/TritonRoute/Dockerfile
See the KLayout instructions for installing KLayout from source.
./build_openroad.sh
source setup_env.sh
klayout
must be added to the path manually.
See the flow README for details about the flow and how to run designs through the flow
Your feedback is very welcome.
We welcome any comments, patches and designs to help us improve the tool. At this time we are focused on overhauling the build process, build testing, and the continuous integration framework. This will set us up for better integration with contributors. Please stay tuned.
The OpenROAD-flow repository (build and run scripts) has a BSD 3-Clause License. The flow relies on several tools, platforms and designs that each have their own licenses:
OpenROAD-flow/tools/{tool}/
or
OpenROAD-flow/tools/OpenROAD/src/{tool}/
OpenROAD-flow/flow/platforms/{platform}/
OpenROAD-flow/flow/designs/src/{design}/