3.3 IIC-OSIC tools
Table of contents
Integrated IC Design Environment (IIC-OSIC-TOOLS)
In the rapidly evolving field of semiconductor design and fabrication, accessibility and affordability of design tools play a crucial role, particularly in educational and research institutions. The India IC Initiative (IIC) Open-Source IC Tools, also known as IIC-OSIC, are specifically designed to address this need. Initiated as part of a broader push towards developing a self-reliant semiconductor ecosystem in India, the IIC-OSIC suite provides comprehensive, open-source toolsets tailored for both analog and digital integrated circuit (IC) design. There are numerous ways in which you can install the open-source chip design tools for this course.
The simplest, “default” method is to use the pre-packaged Docker container provided by: IIC-OSIC tools. A research team led by Prof. Harald Pretl from Johannes Kepler University (JKU) developed this Docker container. This is a pre-compiled Docker image which allows to do circuit design on a virtual machine on virtually any type of computing equipment (personal PC, Raspberry Pi, cloud server) on various operating systems (Windows, macOS, Linux). For further information like installed tools, how to setup a VM, etc., please look at IIC-OSIC-TOOLS GitHub page.
Purpose and Significance
The primary goal of IIC-OSIC tools is to democratize the semiconductor design process, allowing educational institutions, startups, and researchers easy and affordable access to advanced electronic design automation (EDA) resources. Traditional EDA tools are often prohibitively expensive, limiting access primarily to large organizations. By embracing open-source principles, IIC-OSIC encourages widespread innovation, skill development, and research, essential for nurturing India’s semiconductor capabilities.
Supported Technologies
IIC-OSIC Tools mainly support two significant open-source Process Design Kits (PDKs):
- Skywater 130nm (Sky130) PDK: A widely-adopted open-source PDK released through Google’s collaboration with SkyWater Technology, providing detailed models and libraries for analog and digital circuit design at a 130nm technology node.
- SCL 180nm PDK: Developed in collaboration with India’s Semiconductor Laboratory (SCL), this PDK supports a 180nm technology node. It facilitates designing circuits specifically targeting local fabrication facilities, further enhancing India’s domestic semiconductor manufacturing capabilities.
Key Components and Features
The IIC-OSIC toolkit integrates various well-established open-source IC design tools, providing a complete end-to-end solution:
- Xschem: A powerful schematic editor, allowing intuitive circuit representation and simulation preparation.
- Ngspice: An open-source simulator derived from the renowned SPICE simulation engine, capable of analyzing both analog and mixed-signal circuits effectively.
- Magic VLSI: A layout editor known for its simplicity and effectiveness, enabling designers to generate layout designs adhering to specified technology rules.
- Netgen: Layout-versus-Schematic (LVS) checking tool, ensuring consistency between schematic diagrams and their physical layouts.
- KLayout: A sophisticated viewer and editor for examining and manipulating layouts and verifying Design Rule Checks (DRC).
These integrated tools, coupled with comprehensive documentation and active community support, significantly lower the barrier to entry in IC design.
Installation Instructions
Instructions
Please make sure to follow the information below to install IIC-OSIC tools on your personal machine. You can find clear installation instructions on how to set this up on Dr. Kwantae Kim’s Blog. Regardless of how you install the tools, you will occasionally need to look at their documentation.
Setting up the Design Directory
- Open your VM by entering the URL in your browser.
- Open a terminal (third icon in the taskbar at the bottom). You should get the following prompt:
/foss/designs >
- Clone the git repository into the current directory:
git clone https://github.com/iic-jku/analog-circuit-design.git
- This GitHub repository includes a file called
.designinit
, which sets the PDK and certain paths. However, this must be located in/foss/designs/
- Therefore, we first need to copy it there:
cp analog-circuit-design/.designinit .
- Then we adjust the variable
XSCHEM_USER_LIBRARY_PATH
by opening the file in an editor e.g.nano .designinit
- Change the last line from
export XSCHEM_USER_LIBRARY_PATH=$DESIGNS/xschem
toexport XSCHEM_USER_LIBRARY_PATH=$DESIGNS/analog-circuit-design/xschem
- Change the last line from
- To apply the changes, we need to close the current terminal window:
exit
- Open again a terminal
- Test if the correct PDK gets selected:
echo $PDK
(you should getsg13g2
as the answer) - Change into the GitHub repository:
cd analog-circuit-design
- Start xschem using
xschem
or directly open a specific schematic usingxschem xschem/dc_lv_nmos.sch
Creating Backups
You can easily create backups of your work by creating a zip archive of the complete directory:
- Change to the parent directory:
cd /foss/designs
- Create a zip archive from the complete design folder:
zip backup.zip analog-circuit-design -r
Linux
In this course, we assume that students have a basic knowledge of Linux and how to operate it using the terminal (shell). If you are not yet familiar with Linux (which is basically a must when doing integrated circuit design as many tools are only available on Linux), then please check out a Linux introductory course or tutorial online, there are many resources available.