sky130のセットアップ
目的
skywaterのフリーなPDK(sky130)で回路のお勉強をするためにspiceの実行環境を整えたい。
参考にしたサイト
https://github.com/bluecmd/learn-sky130/blob/main/schematic/xschem/getting-started.md https://github.com/mabrains/sky130_ubuntu_setup
セットアップ
mkdir -p ~/build/sky130_ubuntu_setup cd ~/build/sky130_ubuntu_setup git clone https://github.com/mabrains/sky130_ubuntu_setup.git sudo ./install_pdk.sh
xschemのインストール
sudo apt-get install libx11-6 libx11-dev libxrender1 libxrender-dev libxcb1 libx11-xcb-dev libcairo2 libcairo2-dev tcl8.6 tcl8.6-dev tk8.6 tk8.6-dev flex bison libxpm4 libxpm-dev gawk git mkdir ~/build cd ~/build git clone https://github.com/StefanSchippers/xschem.git cd xschem ./configure make -j4 sudo make install
起動確認
xschem
PDKのモデルをngspiceで読み込めるようにパッチを当てる。
mkdir -p ~/.xschem/xschem_library cd ~/.xschem/xschem_library git clone https://github.com/StefanSchippers/xschem_sky130.git xschem_sky130 cd ~/skywater/skywater-pdk/libraries cp -a ./sky130_fd_pr ./sky130_fd_pr_ngspice cd ./sky130_fd_pr_ngspice/latest/ patch -p2 < ~/.xschem/xschem_library/xschem_sky130/sky130_fd_pr.patch
xschemrcの編集
gedit ~/.xschem/xschem_library/xschem_sky130/xschemrc
SKYWATER_MODELSとSKYWATER_STDCELLSを置き換える
set SKYWATER_MODELS ~/skywater/skywater-pdk/libraries/sky130_fd_pr_ngspice/latest$ set SKYWATER_STDCELLS ~/skywater/skywater-pdk/libraries/sky130_fd_sc_hd/latest
ngspiceインストール
sudo apt install ngspice
gawインストール(不要だった)
mkdir -p ~/build/gaw cd ~/build/gaw sudo apt install libgtk-3-dev build-essential wget http://download.tuxfamily.org/gaw/download/gaw3-20200922.tar.gz tar -xf gaw3-20200922.tar.gz cd gaw3-20200922 ./configure make -j$(nproc) sudo make install
gawを起動して閉じる。
gaw
gawrcを開く。
gedit ~/.gaw/gawrc
以下のように編集
up_listenPort = 2020
動作確認
適当な作業ディレクトリに移動してxschemを実行
mkdir -p ~/work/xschem/test1 cd ~/work/xschem/test1 xschem
INSを押して、階層をたどっていきnfet_01v8.symを選択
回路図を描く。
簡単な操作説明
- 部品配置はINS
- nfetは「/home/unifagf/.xschem/xschem_library/xschem_sky130/sky130_fd_pr/nfet_01v8.sym」
- 電圧源は「/usr/local/xschem/schem_library_devices/vsource.sym」
- GNDは「/usr/local/xschem/schem_library_devices/gnd.sym」
- ワイヤはw、w中にwで折れ曲がり点追加、ダブルクリックで終了
- xschem公式のビデオがわかりやすいhttps://xschem.sourceforge.io/stefan/xschem_man/video_tutorials/editing_and_sim.mp4
s1のコマンドは以下の通り
.lib /home/unifagf/skywater/skywater-pdk/libraries/sky130_fd_pr_ngspice/latest/models/sky130.lib.spice tt .dc V1 0 1.8 0.1 .save all
Options>Show netlist winにチェック Simulation>Configure simulators and toolsでspice>Ngspiceとなっていることを確認
画面右上のNetlistをクリック、閉じる 画面右上のSimulateをクリック、少し待つ
プロット可能な信号一覧を表示 display
電流を表示 plot v1#branch
Id-Vd特性が確認できた。