Tutorial 9: Developing Industrial Strength EDA Tools Using the OpenDB Open-source Database and the OpenROAD Framework
This repository contains all material needed to participate in the live tutorial of OpenROAD at DAC 2020. Star or bookmark this repository for future reference.
Date: Monday July 20, 2020.
Tutorial Link
- Part 1 at 1:30 PM PT. Convert to your timezone
- Part 2 at 4:00 PM PT. Convert to your timezone
How to join
The live session requires registration to the DAC conference.
To join the session, login to the virtual event platform for DAC, navigate to the agenda and select Monday 1:30PM. Click on the session and join the live meeting. Instructions for signing in to the platform is sent to registrants on the email.
If you have any questions before, during or after the tutorial, feel free to email ahosny@openroad.tools
During the tutorial, we will be covering how to get started with OpenROAD. However, that’s not all. We will be presenting how to develop tools using OpenROAD infrastructure, and how to contribute to its master codebase. For full participation in the tutorial, we ask you to prepare your machine as detailed below.
- CentOS 7: https://www.centos.org/download/
- Ubuntu 18: https://releases.ubuntu.com/18.04/
- Windows 10 using WSL: https://ubuntu.com/wsl
If you are not using any of the two platforms, we suggest that you download VirtualBox (https://www.virtualbox.org/) and install a supported platform. Alternatively, you can install Docker (https://docs.docker.com/get-docker/) and pull an official image.
OpenROAD tools only need Tcl
to be installed.
- CentOS:
sudo yum install tcl
- Ubuntu:
sudo apt install tcl
To use the full automation features of OpenROAD flow, you need to install:
Python 3
- CentOS:
sudo yum install python3
- Ubuntu:
sudo apt install python3
- CentOS:
- Time
- CentOS:
sudo yum install time
- Ubuntu:
sudo apt install time
- CentOS:
- KLayout Follow instructions here: https://www.klayout.de/build.html
Download pre-built tools from: https://github.com/The-OpenROAD-Project/OpenROAD/releases
After you download, extract the downloaded file and add it to the PATH environment variable using: export PATH=</path/to/openroad/bin>:</path/to/openroad>:$PATH
From the terminal screen, type in:
$ openroad
| OpenROAD 0.9.0 bfb1291039
| This program is licensed under the BSD-3 license. See the LICENSE file for details.
| Components of the program may be licensed under more restrictive licenses which must be
| honored.
%
If you see the above OpenROAD message, that means tools are working properly.
If you are planning to dive into OpenROAD data models using C++, you will need to install development dependencies to be able to build the tool from sources.
Development dependencies are documented in this Dockerfile: https://github.com/The-OpenROAD-Project/OpenROAD/blob/master/Dockerfile
- Let's verify your installation
- Database access, features and tools
- RTL to GDS autonomous flow
- Generating reports
- Antenna fix example
- Layout Visualization
- OpenDB Python API
- Machine learning example
- Adding a tool to OpenROAD
You can run OpenROAD flow without installing the tools locally by using OpenROAD public cloud service.
OpenROAD Cloud is available at https://cloud.theopenroadproject.org/
At the time of the tutorial, the platform offers OpenROAD flow on Nangate45. Support for Skywater PDK is in progress.
If you are using example codes from this repository in your research, we appreciate your citation to the following articles:
@inproceedings{9105619,
author={A. {Hosny} and A. B. {Kahng}},
booktitle={2020 33rd International Conference on VLSI Design and 2020 19th International Conference on Embedded Systems (VLSID)},
title={Tutorial: Open-Source EDA and Machine Learning for IC Design: A Live Update},
year={2020},
volume={},
number={},
pages={1-14}
}
@inproceedings{10.1145/3316781.3326334,
author = {Ajayi, Tutu and Chhabria, Vidya A. and Foga\c{c}a, Mateus and Hashemi, Soheil and Hosny, Abdelrahman and Kahng, Andrew B. and Kim, Minsoo and Lee, Jeongsup and Mallappa, Uday and Neseem, Marina and Pradipta, Geraldo and Reda, Sherief and Saligane, Mehdi and Sapatnekar, Sachin S. and Sechen, Carl and Shalan, Mohamed and Swartz, William and Wang, Lutong and Wang, Zhehong and Woo, Mingyu and Xu, Bangqi},
title = {Toward an Open-Source Digital Flow: First Learnings from the OpenROAD Project},
year = {2019},
isbn = {9781450367257},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3316781.3326334},
doi = {10.1145/3316781.3326334},
booktitle = {Proceedings of the 56th Annual Design Automation Conference 2019},
articleno = {76},
numpages = {4},
location = {Las Vegas, NV, USA},
series = {DAC ’19}
}
BSD 3-Clause License. See LICENSE file.