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
Note that all succeeding commands will be executed on your virtual machine.
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 xterm
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
NGSPICE is an open source SPICE simulator for electric and electronic circuits. 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
MAGIC is an open-souce VLSI layout tool. Download the source code via git:
$ git clone https://github.com/RTimothyEdwards/magic
Compile and install the software:
$ cd ./magic
$ ./configure
$ make
$ sudo make install
Installing the SkyWater 130nm Design Kit
This design kit will set up an environment for using the SkyWater sky130 process with open-source EDA tools and tool flows. 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
XSCHEM is an open-source schematic editor for VLSI/ASIC/Analog custom designs, with netlist backends for VHDL, SPICE and Verilog. Download the source code via git:
$ git clone https://github.com/StefanSchippers/xschem
Compile and install XSCHEM:
$ cd ./xschem
$ ./configure
$ make
$ sudo make install
After installing, you will need to copy the SkyWater 130nm design kit XSCHEM configuration file /usr/local/share/pdk/sky130A/libs.tech/xschem/xschemrc
to your working directory to access the design kit features.