Installing Open-Source EDA Tools on a Virtual Machine

From Center for Integrated Circuits and Devices Research (CIDR)
Revision as of 16:32, 28 July 2022 by Louis Alarcon (talk | contribs) (→‎Installing XSCHEM)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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 xclip

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.

To test your installation, see the page on Installing XSCHEM.