Installing Open-Source EDA Tools on a Virtual Machine
In this tutorial, we will create a Linux virtual machine (VM) running on your local (host) machine. We will then install open-source IC design tools here, isolated from the rest of your computer.
Installing Virtualization Software
There is a wide range of virtualization software available, such as VirtualBox or QEMU. For Windows and MacOS users, VirtualBox is a common choice, while Linux users would probably use QEMU/KVM. Download and install your chosen virtualization software.
After installing the virtualization software, you can now create virtual machines.
Installing Ubuntu
For EE220, it is sufficient to create a VM with 2 cores, 8GB of RAM, and 100GB of (disk) storage. Enable networking on your VM so you can download and install software from the web.
On your host computer, download the ISO image of the latest Ubuntu release from the Ubuntu website. We are using Ubuntu 22.04 for this tutorial.
Boot up your newly created VM using the Ubuntu ISO installer, and select normal installation. Follow the instructions for installing Ubuntu. At the end of the installation process, you will be asked to create a user account. You will use this to run the EDA tools we need for the class.
After successfully installing Ubuntu, log in to your VM and update it:
$ sudo apt update
$ sudo apt -y upgrade
Installing Prerequisite Software
We need to install a C compiler and the necessary developer tools using:
$ sudo apt install build-essential
We then need to install the necessary libraries for compiling the software tools:
$ sudo apt install bison flex libx11-dev libreadline-dev libxaw7-dev libxmu-dev x11proto-xext-dev libxft-dev fontconfig libxrender-dev libfftw3-dev autoconf automake libtool libedit-dev adms tcl-dev tk-dev git csh libcairo-dev libglu1-mesa-dev freeglut3-dev mesa-common-dev
For python3
, we will install Anaconda. Go to the Anaconda website and download the installer. After downloading the installer, change its permissions to make it executable, then run the installer:
$ chmod a+x Anaconda3-2022.05-Linux-x86_64.sh
$ ./Anaconda3-2022.05-Linux-x86_64.sh
Note that the installer filename could change if a newer version is available.
Installing NGSPICE
Download NGSPICE from via the NGSPICE website and uncompress the downloaded file:
$ tar xvf ngspice-37.tar.gz
The files are extracted to the ./ngspice-37/
directory. Enter this directory and run the following commands at the command line:
$ mkdir release
$ cd release
$ ../configure --with-x --with-readline=yes --disable-debug
$ make
$ sudo make install
The default install directory for executables is /usr/local/bin/
.
Installing MAGIC
Download the files via git:
$ git clone https://github.com/RTimothyEdwards/magic
Go to the local directory the files were copied to (e.g. ./magic/
) and run:
$ ./configure
$ make
$ sudo make install
Installing the SkyWater 130nm Design Kit
Download the installation scripts via git:
$ git clone git://opencircuitdesign.com/open_pdks
After downloading the installation scripts, we can now install the PDK. Note that this could take some time.
$ cd open_pdks/
$ ./configure --enable-sky130-pdk
$ make
$ sudo make install
Testing Your NGSPICE and PDK Installation
After installing NGSPICE and the SkyWater 130nm design kit, you can test your installation by using NGSPICE to plot the transistor characteristics using the example found in Installing the SkyWater 130nm Design Kit.
Installing XSCHEM
$ git clone https://github.com/StefanSchippers/xschem
$ cd ./xschem
$ ./configure
$ make
$ sudo make install