To adequately utilize the open source skywater130 pdk, we first require to install all the tools, which are
Magic is an open-source VLSI layout tool.
Install steps:
$ sudo apt-get install m4
$ sudo apt-get install tcsh
$ sudo apt-get install csh
$ sudo apt-get install libx11-dev
$ sudo apt-get install tcl-dev tk-dev
$ sudo apt-get install libcairo2-dev
$ sudo apt-get install mesa-common-dev libglu1-mesa-dev
$ sudo apt-get install libncurses-dev
$ git clone git://opencircuitdesign.com/magic
$ cd magic
$ ./configure
$ make
$ sudo make install
More info can be found at http://opencircuitdesign.com/magic/index.html
Netgen is a tool for comparing netlists, a process known as LVS, which stands for "Layout vs. Schematic"
Install steps:
$ git clone git://opencircuitdesign.com/netgen
$ cd netgen
$ ./configure
$ make
$ sudo make install
More info can be found at http://opencircuitdesign.com/netgen/index.html
Xschem is a schematic capture program
Install steps:
$ git clone https://github.com/StefanSchippers/xschem.git xschem_git
$ ./configure
$ make
$ sudo make install
More info can be found at http://repo.hu/projects/xschem/index.html
ngspice is the open-source spice simulator for electric and electronic circuits.
Install steps:
After downloading the tarball from https://sourceforge.net/projects/ngspice/files/ to a local directory, unpack it using:
$ tar -zxvf ngspice-37.tar.gz
$ cd ngspice-37
$ mkdir release
$ cd release
$ ../configure --with-x --with-readline=yes --disable-debug
$ make
$ sudo make install
More info can be found at https://ngspice.sourceforge.io/index.html
Please note that to view the simulation graphs of ngspice, xterm is required and can be installed using.
$ sudo apt-get update
$ sudo apt-get install xterm
Open_PDKs is distributed with files that support the Google/SkyWater sky130 open process description https://github.com/google/skywater-pdk. Open_PDKs will set up an environment for using the SkyWater sky130 process with open-source EDA tools and tool flows such as magic, qflow, openlane, netgen, klayout, etc.
Install steps:
$ git clone git://opencircuitdesign.com/open_pdks
$ open_pdks
$ ./configure --enable-sky130-pdk
$ make
$ sudo make install
An initial working directory can be made by copying the required files as follows:
mkdir Week0
cd Week0
mkdir mag
mkdir netgen
mkdir xschem
cd xschem
cp /usr/local/share/pdk/sky130A/libs.tech/xschem/xschemrc .
cp /usr/local/share/pdk/sky130A/libs.tech/ngspice/spinit .spiceinit
cd ../mag
cp /usr/local/share/pdk/sky130A/libs.tech/magic/sky130A.magicrc .magicrc
cd ../netgen
cp /usr/local/share/pdk/sky130A/libs.tech/netgen//sky130A_setup.tcl .
Prerequisites
- gcc >= 6.1.0 (For C++14 support)
- python >= 3.7
Use the following commands to install ALIGN tool.
For Faster Installation ALIGN
sudo apt update
sudo apt install lp-solve
sudo apt-get install libboost-all-dev
export CC=/usr/bin/gcc
export CXX=/usr/bin/g++
git clone https://github.com/ALIGN-analoglayout/ALIGN-public
cd ALIGN-public
#Create a Python virtualenv
python -m venv general
source general/bin/activate
python -m pip install pip --upgrade
# Install ALIGN as a USER
pip install -v .
# Install ALIGN as a DEVELOPER
pip install -e .
pip install setuptools wheel pybind11 scikit-build cmake ninja
pip install -v -e .[test] --no-build-isolation
pip install -v --no-build-isolation -e . --no-deps --install-option='-DBUILD_TESTING=ON'
Clone the following Repository inside ALIGN-public directory
git clone https://github.com/ALIGN-analoglayout/ALIGN-pdk-sky130
move SKY130_PDK
folder to /ALIGN-public/pdks
Everytime we start running tool in new terminal run following commands.
python -m venv general
source general/bin/activate
Commands to run ALIGN (goto ALIGN-public directory)
mkdir work
cd work
General syntax to give inputs
schematic2layout.py <NETLIST_DIR> -p <PDK_DIR> -c
Running a EXAMPLE:
schematic2layout.py ../examples/telescopic_ota -p ../pdks/FinFET14nm_Mock_PDK/
Running a EXAMPLE on Sky130pdk
schematic2layout.py ../ALIGN-pdk-sky130/examples/five_transistor_ota -p ../pdks/SKY130_PDK/
OpenROAD is an integrated chip physical design tool that takes a design from synthesized Verilog to routed layout.
An outline of steps used to build a chip using OpenROAD is shown below:
- Initialize floorplan - define the chip size and cell rows
- Place pins (for designs without pads )
- Place macro cells (RAMs, embedded macros)
- Insert substrate tap cells
- Insert power distribution network
- Macro Placement of macro cells
- Global placement of standard cells
- Repair max slew, max capacitance, and max fanout violations and long wires
- Clock tree synthesis
- Optimize setup/hold timing
- Insert fill cells
- Global routing (route guides for detailed routing)
- Antenna repair
- Detailed routing
- Parasitic extraction
- Static timing analysis
Before Installing openROAD lemon needs to be instal First https://lemon.cs.elte.hu/trac/lemon/wiki/Downloads
Run the below commands step-by-step
cd
git clone --recursive https://github.com/The-OpenROAD-Project/OpenROAD.git
cd OpenROAD
./etc/DependencyInstaller.sh
cd
git clone --recursive https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts
cd OpenROAD-flow-scripts
./build_openroad.sh –local
export OPENROAD=~/OpenROAD-flow-scripts/tools/OpenROAD
export PATH=~/OpenROAD-flow-scripts/tools/install/OpenROAD/bin:~/OpenROAD-flow-scripts/tools/install/yosys/bin:~/OpenROAD-flow-scripts/tools/install/LSOracle/bin:$PATH
To install the OpenFASoC use the following commands
cd
git clone https://github.com/idea-fasoc/openfasoc
cd openfasoc
./dependencies.sh
export PDK_ROOT=/usr/local/share/pdk