IIC-OSIC-TOOLS 問題・小技など
IIC-OSIC-TOOLS を使う上での問題や小技などのメモ.
1.[未解決] Container が勝手に落ちる
かなり困っている挙動.ターミナルや起動したツールを何も操作しないまま5分ぐらい経つと,iic-osic-tools のコンテナが落ちます.デザインルールを見たり note の記事を書いているといつのまにか落ちています.たまにいずれかのウィンドウをクリックすれば防げるんですが,けっこうストレス溜まります.誰か解決方法教えてください.
2.Klayout の設定初期化問題
Klayout の記事にも書いていますが,/headless/.klayout の下はコンテナを起動するごとに大胆に初期化されます.ユーザが不意に環境を壊してしまわないように,ということだと思うんですが,カスタマイズして使いたい人にとってはちょっと辛い.
2.1 IIC-OSIC-TOOLS の用意しているもの
いちおう IIC-OSIC-TOOLS では editing mode で起動する ke が alias として .bashrc に登録されています.
alias k='klayout -c $SAK/klayout/tech/sky130A/sky130A.krc -nn $PDKPATH/libs.tech/klayout/sky130A.lyt -l $PDKPATH/libs.tech/klayout/sky130A.lyp'
alias ke='klayout -e -c $SAK/klayout/tech/sky130A/sky130A.krc -nn $PDKPATH/libs.tech/klayout/sky130A.lyt -l $PDKPATH/libs.tech/klayout/sky130A.lyp'
alias kf='klayout -c $SAK/klayout/tech/sky130A/sky130A.krc -nn $PDKPATH/libs.tech/klayout/sky130A.lyt -l $PDKPATH/libs.tech/klayout/sky130A-fom.lyp'
ちなみに .bashrc を編集しても無駄です.起動するごとに初期化されます.というか /foss/designs 以外のファイルはすべて初期化されます.
2.2 設定だけでも保存したい
設定ファイルは起動時の -c オプションで指定することができます. /foss/designs/ の下のどこかに自分の klayoutrc を用意しておいて,
% klayout -c klayoutrc
で起動すれば,起動後におこなった設定もすべて指定した klayoutrc に保存されます.
2.3 シェルスクリプトでいろいろ
設定は -c で何とかなりますが,DRC/LVS のルールとかライブラリとかは毎回設定する必要があります.シェルスクリプトでやりましょう.
設定 (klayoutrc) → -cオプションで指定
DRC/LVS → .klayout/tech/sky130A/{drc|lvs} の下にスクリプトを置けばよい
セルライブラリ → .klayout/libraries の下に GDSファイルを置けばよい
ということで以下のようなスクリプトから起動すると手間が省けます.
(リポジトリ skywater-130nm-examples/tools/klayout.sh)
#!/usr/bin/bash
CONFIG_FILE=/foss/designs/klayoutrc
LIBRARIES=/headless/.klayout/libraries
KLAYOUT_TECH=/headless/.klayout/tech/sky130A
LIB_REF=/foss/pdks/sky130A/libs.ref
# copy GDS files to libraries
if [ ! -e ${LIBRARIES} ]; then
mkdir ${LIBRARIES}
cp ${LIB_REF}/sky130_fd_pr/gds/sky130_fd_pr.gds ${LIBRARIES}/
cp ${LIB_REF}/sky130_fd_sc_hd/gds/sky130_fd_sc_hd.gds ${LIBRARIES}/
fi
# set DRC/LVS rules
if [ ! -e ${KLAYOUT_TECH}/drc ]; then
mkdir ${KLAYOUT_TECH}/drc
cp ${KLAYOUT_TECH}/sky130A.lydrc ${KLAYOUT_TECH}/drc/
fi
if [ ! -e ${KLAYOUT_TECH}/lvs ]; then
mkdir ${KLAYOUT_TECH}/lvs
cp ${KLAYOUT_TECH}/sky130A.lylvs ${KLAYOUT_TECH}/lvs/
fi
# launch Klayout
klayout -c $CONFIG_FILE
この記事が気に入ったらサポートをしてみませんか?