-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patheda_installer_fedora.sh
172 lines (153 loc) · 4.9 KB
/
eda_installer_fedora.sh
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
166
167
168
169
170
171
172
#!/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 dnf groupinstall -y "Development Tools" "Development Libraries"
sudo dnf install -y libXrender libXrender-devel libX11 libX11-devel libX11-xcb\
libxcb libxcb-devel cairo cairo-devel tcl tcl-devel tk\
tk-devel bison flex libXpm xterm tcl-tclreadline\
gtk3-devel automake libXt libXt-devel libtool libXaw\
libXaw-devel readline readline-devel fftw fftw-devel cmake\
octave octave-control octave-doc octave-general maxima\
maxima-gui mesa-libGLU-devel g++ gettext gettext-devel\
lapack lapack-devel blas blas64 blas-devel\
qt5-qtbase qt5-qtbase-devel qt5-qtmultimedia\
qt5-qtmultimedia-devel qt5-qtxmlpatterns\
qt5-qtxmlpatterns-devel qt5-qtsvg qt5-qtsvg-devel\
qt5-qttools qt5-qttools-devel zlib-devel ruby ruby-devel\
python3 python3-devel\
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
export RPM_ARCH=bla
export RPM_PACKAGE_RELEASE=bla
export RPM_PACKAGE_VERSION=bla
export RPM_PACKAGE_NAME=bla
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
cd $RUN_DIR
mkdir -p $TOOLS_DIR/klayout
git clone https://github.com/KLayout/klayout.git
cd klayout
./build.sh -bin $TOOLS_DIR/klayout -option -j$(nproc)
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
#./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 "==============="