-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patheda_iinstaller_deb.sh
More file actions
167 lines (146 loc) · 4.57 KB
/
eda_iinstaller_deb.sh
File metadata and controls
167 lines (146 loc) · 4.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
#!/bin/bash
set -e
#==============================================================================
# EDA Tools
#==============================================================================
mkdir eda_setup
cd eda_setup
mkdir -p $HOME/icdesign/tools
RUN_DIR=$(pwd)
INSTALL_DIR=$HOME/icdesign
TOOLS_DIR=$INSTALL_DIR/tools
PDK_DIR=$INSTALL_DIR/pdk
LIB_DIR=$INSTALL_DIR/lib
# Dependencies
echo "=============================================="
echo "Installing Dependences, Octave, Scilab, Maxima"
echo "=============================================="
sudo apt update
sudo apt install -y libx11-dev libxrender-dev libx11-xcb-dev\
libcairo2-dev tcl8.6-dev tk8.6-dev bison flex\
libxpm-dev xterm vim-gtk3 tcl-tclreadline libjpeg-dev\
libgtk-3-dev build-essential tcl-dev tk-dev libcairo-dev\
autotools-dev automake libxt-dev libtool libxaw7-dev\
libreadline-dev libfftw3-dev mesa-common-dev libglu1-mesa-dev\
ruby ruby-dev python3 python3-dev libz-dev qmake6 qt6-base-dev\
qt6-multimedia-dev qt6-svg-dev libqt6core5compat6 libqt6designer6\
mpi-default-dev cmake trilinos-all-dev trilinos-dev\
ninja-build libblas3 libblas64-3 libblas-dev libblas64-dev\
liblapack3 liblapack64-3 liblapack-dev liblapack64-dev\
scilab octave octave-control octave-doc octave-general\
octave-linear-algebra octave-secs1d octave-secs2d octave-secs3d\
octave-splines octave-symbolic maxima maxima-doc maxima-share\
wxmaxima python-is-python3 2to3 python3.11-venv git gettext
echo "================="
echo "Installing xschem"
echo "================="
# Xschem
# Setup
cd $RUN_DIR
git clone https://github.com/StefanSchippers/xschem
cd xschem
./configure --prefix=$TOOLS_DIR
make -j$(nproc)
make install
# ngspice integration
mkdir -p $HOME/icdesign/simulations/
echo ng_behavior=hsa >> $HOME/icdesign/simulations/.spiceinit
echo ng_nomodcheck >>$HOME/icdesign/simulations/.spiceinit
echo "==================="
echo "Installing xcircuit"
echo "==================="
# xcircuit
cd $RUN_DIR
git clone git://opencircuitdesign.com/xcircuit
cd xcircuit
aclocal && automake --add-missing && autoconf
./configure --prefix=$TOOLS_DIR
make -j$(nproc)
make install
echo "=================="
echo "Installing ngspice"
echo "=================="
# ngspice
cd $RUN_DIR
git clone git://git.code.sf.net/p/ngspice/ngspice
cd ngspice
./autogen.sh
mkdir release
cd release
../configure --prefix=$TOOLS_DIR --with-x --enable-xspice --enable-cider --enable-predictor --enable-osdi --enable-pss --with-readline=yes --enable-openmp --disable-debug CFLAGS="-m64 -O2" LDFLAGS="-m64 -s"
make -j$(nproc)
make install
echo "================"
echo "Installing magic"
echo "================"
# magic
cd $RUN_DIR
git clone git://opencircuitdesign.com/magic
cd magic
./configure --prefix=$TOOLS_DIR
make -j$(nproc)
make install
# klayout
# TODO
echo "================="
echo "Installing netgen"
echo "=================="
#netgen
cd $RUN_DIR
git clone git://opencircuitdesign.com/netgen
cd netgen
./configure --prefix=$TOOLS_DIR
make -j$(nproc)
make install
echo "====================="
echo "Installing xschem-gaw"
echo "====================="
#xschem-gaw
cd $RUN_DIR
git clone https://github.com/StefanSchippers/xschem-gaw
cd xschem-gaw
# TODO: Automate this patch
sed -i "s/GETTEXT_MACRO_VERSION = 0.18/GETTEXT_MACRO_VERSION = 0.20/" po/Makefile.in.in
aclocal && automake --add-missing && autoconf
./configure --prefix=$TOOLS_DIR
make -j$(nproc)
make install
# Xyce
# TODO: Automate this
# Edit PATH variable:
echo export PATH="\$PATH:$TOOLS_DIR/bin" >> $HOME/.bashrc
export PATH="$PATH:$TOOLS_DIR/bin"
echo "====================================="
echo "Setting up Python Virtual Environment"
echo "====================================="
# Python Libraries
mkdir -p $TOOLS_DIR/python_venv
cd $TOOLS_DIR/python_venv
python -m venv .
source bin/activate
pip install numpy scipy matplotlib pandas sympy
pip install jupyterlab
pip install slycot
pip install control
pip install serdespy spyci
deactivate
echo "======================================"
echo "Installing xschem Skywater 130 symbols"
echo "======================================"
# Skywater 130 symbols
mkdir -p $LIB_DIR
cd $LIB_DIR
git clone https://github.com/StefanSchippers/xschem_sky130
echo "==========================="
echo "Installing Skywater 130 PDK"
echo "==========================="
# Skywater PDK
cd $RUN_DIR
git clone git://opencircuitdesign.com/open_pdks
cd open_pdks
./configure --prefix=$PDK_DIR --enable-sky130-pdk --enable-sram-sky130 --enable-osu-t12-sky130 --enable-osu-t15-sky130 --enable-osu-t18-sky130
make -j$(nproc)
make install
echo "==============="
echo "Setup Complete!"
echo "==============="