Open-source EDA is rapidly enabling new waves of innovation on many fronts. For academic researchers, it speeds up the lifecycle of scientific progress and makes research results relevant to modern industry practice. For EDA professionals and the industry ecosystem, open-source EDA is a complement and booster to commercial EDA. For the IC design community, recent releases under permissive licenses make it possible for design engineers as well as hobbyists to take ideas to manufacturing-ready layout at essentially zero cost. This full-day tutorial will review the very latest progress in open-source EDA, focusing on the digital RTL-to-GDS flow. In particular, the tutorial will make a deep dive into The OpenROAD Project https://theopenroadproject.org/ , which brings new open-source tools and machine learning into a “no human in the loop” RTL-to-GDS flow. OpenROAD’s key components will be reviewed, along with how the overall system is architected. Here, we will provide live / hands-on demos on using the OpenROAD flow and integrating it into existing design flows. We will then turn to industry-compatible open-source infrastructure, and then demonstrate how OpenROAD’s continuous integration (CI) system works in order to welcome new contributions and give a low-overhead start for design tool and methodology innovation. Importantly, open-source EDA and the goal of “self-driving”, no-humans IC design puts a spotlight on machine learning that reduces design effort and schedule. We will show examples of important machine learning use cases and proof points in the RTL-to-GDS flow, along with demos of an open-source, freely portable integrated metrics collection system. The target audience of this tutorial includes EDA researchers and developers, graduate students and professors, and IC design methodologists, physical design engineers, and managers. Whether you are a veteran in EDA / IC design or just starting a career, the tutorial will give a new perspective and a roadmap to use and contribute to open-source EDA.
Navigate to: https://openroad.readthedocs.io/en/latest/
Part 1: Introduction to Open-source EDA
Part 2: Machine Learning for IC Design
Concluding Remarks: here
To follow up with this tutorial, we recommend the use of a machine with 4GB+ of RAM to build and run the tools. However, if you are using big designs, more memory is required for the tools to perform their computations in a timely manner.
While the tools can theoretically be built on Linux, Windows and Mac, they have been tested only on CentOS 7.
Windows or MacOS:
- Use VirtualBox. VirtualBox is a virtualization technology that allows us to run Linux-based distributions on Windows or Mac machines.
- Install VirtualBox from this link: https://www.virtualbox.org/wiki/Downloads
- Download CentOS 7 ISO image from: https://wiki.centos.org/Download
- Follow this tutorial to create a CentOS 7 virtual machine (VM): https://resources.infosecinstitute.com/installing-configuring-centos-7-virtualbox/
- Use Docker. Docker is a containerization technology that allows us to run Linux-based container distributions on Windows or Mac machines.
- Install Docker from this link: https://docs.docker.com/v17.09/engine/installation/
- A docker image with all required packages pre-installed is available at openroad/openroad:base. Use the following command to pull the image from Docker Hub.
docker pull openroad/openroad:base
Install the required packages
Bare-metal (or VM using VirtualBox)
- Install essential build tools
yum group install -y "Development Tools" yum -y install centos-release-scl yum -y install devtoolset-8 devtoolset-8-libatomic-devel
- Install CMake
wget https://cmake.org/files/v3.14/cmake-3.14.0-Linux-x86_64.sh chmod +x cmake-3.14.0-Linux-x86_64.sh ./cmake-3.14.0-Linux-x86_64.sh --skip-license --prefix=/usr/local
- Install development dependencies
yum install -y wget git wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm yum install -y epel-release-latest-7.noarch.rpm yum install -y tcl-devel tcl tk libstdc++ tk-devel boost-devel
- Install Python development dependencies
yum install -y https://centos7.iuscommunity.org/ius-release.rpm yum update -y yum install -y python36u python36u-libs python36u-devel python36u-pip
A docker image with all required packages pre-installed is available at openroad/openroad:base. Use the following command to pull the image from Docker Hub.
docker pull openroad/openroad:base
- Clone the repository
git clone --recursive https://github.com/The-OpenROAD-Project/OpenROAD.git
- Change to repo directory
If you are using Docker, then run the following command and continue working inside the container for the rest of the tutorial.
docker run -it -v $(pwd):/OpenROAD openroad/openroad:base bash cd /OpenROAD
- Build OpenROAD
mkdir build cd build cmake .. make -j 4 make install
- Test OpenROAD
You should see openroad version printed out along with the hash of the build.