Unifagfのブログ

間違った情報が多いです

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を選択 f:id:Unifagf:20220123222005p:plain

回路図を描く。 f:id:Unifagf:20220123230957p:plain

簡単な操作説明

  • 部品配置は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のコマンドは以下の通り f:id:Unifagf:20220123231117p:plain

.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

電流を表示 f:id:Unifagf:20220123232215p:plain plot v1#branch

Id-Vd特性が確認できた。