Skip to content

Latest commit

 

History

History
253 lines (199 loc) · 6.57 KB

README.md

File metadata and controls

253 lines (199 loc) · 6.57 KB

Tools and SKY130 PDKs

To adequately utilize the open source skywater130 pdk, we first require to install all the tools, which are

Magic

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

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

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

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_pdk

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

Verifiying the open_pdk installation

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 .

Installing ALIGN:

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'

Making ALIGN Portable to Sky130 tehnology

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

Running ALIGN TOOL

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 Installation

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:

  1. Initialize floorplan - define the chip size and cell rows
  2. Place pins (for designs without pads )
  3. Place macro cells (RAMs, embedded macros)
  4. Insert substrate tap cells
  5. Insert power distribution network
  6. Macro Placement of macro cells
  7. Global placement of standard cells
  8. Repair max slew, max capacitance, and max fanout violations and long wires
  9. Clock tree synthesis
  10. Optimize setup/hold timing
  11. Insert fill cells
  12. Global routing (route guides for detailed routing)
  13. Antenna repair
  14. Detailed routing
  15. Parasitic extraction
  16. 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

Install OpenFASoC

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