アナログIC設計入門

CMOSインバータを1個、回路図からGDSまで自分の手で描く

← 講義ポータルへ戻る
この章の学習のねらい
設計に使う5本のツールと sky130A を、自分のパソコンで動く状態にします。判断点はありません。ここで作った環境を第3章から第7章まで使い続けます。
設計の工程 回路図、シミュレーション、レイアウト、DRC、抽出、LVS照合、GDS出力の7工程と、各工程で使用するツールを示した流れ図。 【図1-1】設計の工程 / 本章は準備 [1] 回路図 xschem [2] シミュレーション ngspice [3] レイアウト magic [4] DRC magic [5] 抽出 magic [6] LVS照合 netgen [7] GDS出力 magic 準備 5本 + sky130A
本章の検証状況
2.4節(Windows)は、Windows 11 + Docker Desktop の実機で①から⑫まで通して確認しました。掲載している画面は、その実行結果です。ただし初回のダウンロード表示だけは、すでに取得済みの環境で確認したため実物と異なります。
2.5節(Linux・macOS)は、コンテナの起動とデスクトップ画面の表示までを確認しました。画面の解像度、パネルの構成、キー割り当ては、IIC-OSIC-TOOLS のビルド定義(_build/images/base/)を読み取った値です。
記載と異なる結果になった場合、読者の誤りではなく本講座の記述が合っていない可能性があります。第0章に検証の範囲を書いています。

2.1 この章の作業

パソコンに入れるソフトは Docker Desktop の1本だけです。あとは、決まったコマンドを順に打つだけで環境が揃います。

所要時間は、ダウンロードを含めて30分から2時間です。回線速度で変わります。ダウンロードするデータは約3.4GBあります。この取得は最初の一度だけで、2回目以降は発生しません。

IIC-OSIC-TOOLS とは
本講座で使う5本のツール(xschem、ngspice、magic、netgen、klayout)と、SkyWater社の130nmプロセスの設計データ sky130A を、動く状態にまとめたものです。オーストリアのヨハネス・ケプラー大学 集積回路・量子計算研究所が公開しています。
ツールを1本ずつ入れる必要はありません。ツール同士のバージョンの組み合わせも、設計データの置き場所も、設定済みの状態で配布されています。

ツールを1本ずつ入れない理由

5本のうち、xschem、ngspice、netgen、klayout は Ubuntu の標準の配布物に含まれており、1行で導入できます。magic は含まれてはいるものの、バージョンが 8.3.105 です。sky130A の設計規則ファイルは 8.3.411 以上を要求するため、読み込みに失敗します。

Ubuntu 24.04 の標準配布物にある magic で sky130A を読んだ場合

  Error: Magic version 8.3.411 is required by this techfile,
         but this version of magic is 8.3.105.
  Segmentation fault

IIC-OSIC-TOOLS には適合するバージョンが入っています。5本のバージョンの組み合わせも確認済みのものが入っているため、どれを入れるかを読者が判断する作業は発生しません。

2.2 Docker Desktop の導入

この節で入れるソフトは1本だけです。Docker Desktop を 公式サイト から取得し、画面の指示に従って導入します。OSごとに取得するファイルが異なります。

表2-1 OS別の取得対象
OS取得するもの注意
Windows 10 / 11Docker Desktop for Windows導入時にWSL2の有効化を求められた場合は指示に従う
macOS(M1以降)Docker Desktop for Mac (Apple Silicon)
macOS(Intel)Docker Desktop for Mac (Intel Chip)
LinuxDocker Engine下記の設定を行う
Linuxの場合のみ:自分のユーザーを docker グループに追加する
この設定をせずに sudo を付けて起動すると、作成されるファイルの持ち主が root になり、あとから自分で編集できなくなります。
sudo usermod -aG docker $USER を実行し、いったんログアウトして入り直します。
WindowsとmacOSでは、この作業は不要です。

2.3 起動のしかたは2つある

IIC-OSIC-TOOLS には起動のしかたが複数あります。本講座で使うのは次の2つです。どちらを選んでも、入っているツールと設計データは同じものです。

表2-2 起動のしかた
呼び方操作する場所この講座で使うOS該当節
シェル方式いま使っているターミナルが、そのままコンテナの中に切り替わるWindows2.4
ブラウザ方式ブラウザの中に表示されるデスクトップ画面Linux・macOS2.5

Windows の方は 2.4節だけを読んでください。2.5節は読まなくて構いません。逆に、Linux と macOS の方は 2.5節だけを読んでください。

なぜWindowsだけ違う方式なのか
Windows のシェル方式の起動スクリプトには、Windows側の画面表示のしくみ(WSLg)をコンテナに渡す記述があります。このため xschem や magic が、ブラウザの中ではなく Windows のウィンドウとして開きます。文字の大きさもコピー&ペーストも、いつも使っている PowerShell のままです。
Linux と macOS のシェル方式にはこの記述がなく、また作成するファイルの持ち主が root になります。このためブラウザ方式を使います。

2.4 Windows の手順

本節はWindows PCユーザー向けです。LinuxとmacOSの方は2.5節へ進んでください。

①から⑭まで、順に実行します。途中で他の節に移動する必要はありません。

① Docker Desktop を立ち上げてください
スタートメニューから Docker Desktop を起動します。
画面右下(通知領域)のクジラのアイコンが動いている間は準備中です。動きが止まるまで待ちます。ここで待たずに次へ進むと、⑥で失敗します。
② PowerShell を開いてください
スタートボタンを右クリックし、「ターミナル」または「Windows PowerShell」を選びます。
次のような表示が出ます。
PS C:\Users\user>
user の部分はご自身のユーザー名です。本講座では user として説明します。
このあとの操作は、どのフォルダにいても構いません。本講座では、いま出ているこの位置のまま進めます。
PowerShell への貼り付け方
コマンドをコピーしたあと、PowerShell の黒い画面の上で右クリックすると貼り付けられます。Ctrl+V でも貼り付けられます。
貼り付けたあと、Enter を押すと実行されます。
③ 次の1行をコピーして、PowerShell に貼り付けて実行してください
docker run --rm hello-world
こう出れば成功です
Hello from Docker!
This message shows that your installation appears to be working correctly.
Docker が動いていることの確認です。ここで失敗した場合、そのまま先へ進んでも原因が分からなくなります。次の「うまくいかないとき」を見てください。
③でうまくいかないとき
Cannot connect to the Docker daemon と出た場合は、Docker Desktop が起動していません。①に戻り、クジラのアイコンが止まるまで待ってから、もう一度③を実行します。
用語 'docker' は…認識されません と出た場合は、Docker Desktop を導入したあとに PowerShell を開き直していません。PowerShell をいったん閉じ、②からやり直します。
④ 次の1行をコピーして、貼り付けて実行してください
git clone --depth=1 https://github.com/iic-jku/iic-osic-tools.git
こう出れば成功です
Cloning into 'iic-osic-tools'...
Receiving objects: 100% (552/552), 379.25 KiB | 2.00 MiB/s, done.
Resolving deltas: 100% (117/117), done.
起動用のファイル一式を取得しています。380KB程度で、すぐ終わります。ツール本体(約3.4GB)は⑥で取得します。
数字は取得した時期によって変わります。一致している必要はありません。
④でうまくいかないとき
用語 'git' は…認識されません と出た場合は、Git が入っていません。Git for Windows を導入し、PowerShell を開き直してから④をやり直します。
destination path 'iic-osic-tools' already exists と出た場合は、すでに取得済みです。④を飛ばして⑤へ進んでください。
⑤ 次の1行をコピーして、貼り付けて実行してください
cd iic-osic-tools
こう出れば成功です
PS C:\Users\user\iic-osic-tools>
表示されている場所が \iic-osic-tools で終わっていることを確認してください。取得したファイルのある場所へ移動しました。
⑤で場所が二重になったとき
C:\Users\user\iic-osic-tools\iic-osic-tools のように同じ名前が2回出た場合は、④を2回実行しています。次の1行で1つ上に戻ってください。
cd ..
⑥ 次の1行をコピーして、貼り付けて実行してください
.\start_shell.bat
先頭の .\ は省略できません。PowerShell は、いまいる場所にあるファイルを名前だけでは実行しない決まりになっているためです。
初回はここで約3.4GBの取得が始まります。回線の速さによって、10分から2時間かかります。進み具合の数字が止まって見える時間がありますが、取得した内容を展開している時間です。そのまま待ちます。 こう出れば成功です
Using/creating designs directory: C:\Users\user\eda\designs
Using container engine docker
Container does not exist, pulling docker.io/hpretl/iic-osic-tools:latest and creating iic-osic-tools_shell ...
latest: Pulling from hpretl/iic-osic-tools
(初回はここに取得の進み具合が表示されます)
Status: Downloaded newer image for hpretl/iic-osic-tools:latest
docker.io/hpretl/iic-osic-tools:latest

What's next:
    View a summary of image vulnerabilities and recommendations → docker scout quickview docker.io/hpretl/iic-osic-tools:latest
[INFO] USER_ID: 0, GROUP_ID: 0
[INFO] Final PATH variable: /headless/.local/bin:/foss/tools/bin:/foss/tools/sak: ...
[INFO] Final PYTHONPATH variable: /headless/.local/lib/python3.12/site-packages: ...
[INFO] SKIPPING UI STARTUP
[INFO] Executing command: '/bin/bash'
/foss/designs >
PATHPYTHONPATH の行は実際には非常に長く、画面の何行分にもわたります。読む必要はありません。
SKIPPING UI STARTUP は、デスクトップ画面を立ち上げない、という意味です。シェル方式では正常な表示です。
⑦ 表示が変わったことを確認してください
いちばん下の行が、次の形に変わっています。
/foss/designs >
PS C:\…> ではなくなりました。これがコンテナの中の表示です。ここから先に打つコマンドは、Windows ではなくコンテナの中で実行されます。
見分け方は先頭です。/foss で始まっていればコンテナの中、PS C:\ で始まっていれば Windows 側です。
文字が小さい場合は、Ctrl を押しながらマウスホイールを回すと大きくなります。PowerShell の機能がそのまま使えます。
⑥でうまくいかないとき
用語 '.\start_shell.bat' は…認識されません と出た場合は、⑤の移動ができていません。⑤に戻ります。
ERROR: No container engine found と出た場合は、Docker Desktop が起動していません。①に戻ります。
Container iic-osic-tools_shell exists. と出た場合は、すでにコンテナが作られています。2.7節の再開の手順を使ってください。
⑧ 次の5行をまとめてコピーして、貼り付けて実行してください
ngspice -v
xschem --version
magic --version
netgen -batch quit
klayout -v
5本のツールが入っているかの確認です。表示される量はかなり多く、画面が一気に流れます。異常ではありません。 こう出れば成功です
******
** ngspice-46 : Circuit level simulation program
** Compiled with KLU Direct Linear Solver
** The U. C. Berkeley CAD Group
** Copyright 1985-1994, Regents of the University of California.
** Copyright 2001-2025, The ngspice team.
(以下、参照先の案内が数行)
******
XSCHEM V3.4.8RC
Copyright (C) 1998-2026 Stefan Schippers
(以下、ライセンスの表示と設定ファイルの読み込み経過が10行以上)
Netlist mode: <default>
Sourced library init file /foss/tools/xschem/share/doc/xschem/analyses/lib_init.tcl
8.3.678
Netgen 1.5.323 compiled on Mon Jul 27 09:16:59 AM CEST 2026
Warning: netgen command 'format' use fully-qualified name '::netgen::format'
Warning: netgen command 'global' use fully-qualified name '::netgen::global'
KLayout 0.30.9
読み方
5本すべてでバージョン番号が表示されれば揃っています。番号は取得した時期によって変わります。上の数字と一致している必要はありません。
表示の形式はツールごとに大きく異なります。ngspice と xschem は著作権表示を含む長い出力を返し、magic は 8.3.678 という数字だけを返します。
netgen の Warning: の2行は、正常に動いている場合にも表示されます。対処は不要です。
⑧で xschem が別のPDKを表示する
xschem の出力の中に、次のような行が混じります。
MODELS_NGSPICE: /foss/pdks/ihp-sg13g2/libs.tech/ngspice/models
ihp-sg13g2 は、本講座で使う sky130A とは別の設計データ(ドイツIHP社の130nmプロセス)です。コンテナには複数の設計データが同梱されており、初期状態ではそちらが選ばれています。
次の⑨で sky130A に切り替えます。
⑨ 次の2行をまとめてコピーして、貼り付けて実行してください
echo $PDK_ROOT
echo $PDKPATH
設計データの置き場所の確認です。 こう出ます
/foss/pdks
/foss/pdks/ihp-sg13g2
2行目が ihp-sg13g2 になっています。本講座で使うのは sky130A です。次の⑩で切り替えます。
すでに /foss/pdks/sky130A と表示されている場合は、⑩を飛ばして⑪へ進んでください。
コンテナには5つの設計データが入っている
ls /foss/pdks/ を実行すると、次のように表示されます。
ciel  gf180mcuD  ihp-sg13cmos5l  ihp-sg13g2  sky130A  versions.txt
どれを初期値にするかはコンテナの版によって変わります。本講座は sky130A を使うので、明示的に切り替えます。切り替えは環境変数の設定だけで済み、コンテナを作り直す必要はありません。
⑩ 次の3行をまとめてコピーして、貼り付けて実行してください
echo 'export PDK=sky130A' >> /headless/.bashrc
echo 'export PDKPATH=$PDK_ROOT/$PDK' >> /headless/.bashrc
tail -3 /headless/.bashrc
設定ファイルに2行を書き足しています。この方法にすると、次回コンテナを起動したときにも設定が残ります。 こう出れば成功です
export PS1='\[\033[0;32m\]\w >\[\033[0;38m\] '
export PDK=sky130A
export PDKPATH=$PDK_ROOT/$PDK
下の2行が、いま書き足した内容です。1行目は元から入っている設定で、プロンプトを /foss/designs > の形にしているものです。
⑪ 次の3行をまとめてコピーして、貼り付けて実行してください
export PDK=sky130A
export PDKPATH=$PDK_ROOT/$PDK
echo $PDKPATH
⑩で書き足した設定は、次回の起動から効きます。いま開いている画面にも反映させるため、同じ2行をその場でも実行します。 こう出れば成功です
/foss/pdks/sky130A
ここが sky130A になっていない状態で先へ進まないでください。第3章で回路図を開いても、sky130 の部品が一覧に出てきません。
⑫ 次の3行をまとめてコピーして、貼り付けて実行してください
mkdir -p /foss/designs/inverter
cd /foss/designs/inverter
pwd
作業用のフォルダを作って、そこへ移動します。 こう出れば成功です
/foss/designs/inverter
第3章から第7章までの作業は、すべてこのフォルダで行います。
⑬ 次の1行をコピーして、貼り付けて実行してください
xschem &
ツールの画面が出るかの確認です。ターミナルには次のような1行が返ります。
[1] 28
この表示は成功の合図ではありません。バックグラウンドで起動を始めた、という意味だけです。
Windows の画面に xschem のウィンドウが開いたかどうかで判断してください。ブラウザの中ではなく、通常のウィンドウとして開けば成功です。大きさも自由に変えられます。
末尾の & は、ツールを起動したままコマンドの入力を続けるための指定です。これがないと、ツールを閉じるまで次のコマンドを打てません。
⑬でウィンドウが開かないとき
まず jobs を実行します。Running であれば起動しており表示だけが届いていない状態、Exit で終わっていれば異常終了しています。
異常終了の場合は & を外して xschem だけを実行し、表示されるメッセージを確認します。cannot open display と出れば、原因は次のとおりです。
Windows側の画面表示のしくみ(WSLg)が使える状態になっていません。Docker Desktop の設定画面(歯車のアイコン)で、General の「Use the WSL 2 based engine」に印が付いているかを確認します。
印を付けて Docker Desktop を再起動したあと、2.7節の手順でコンテナを削除し、⑥からやり直します。
それでも開かない場合は、2.5節のブラウザ方式に切り替えてください。ブラウザ方式はこのしくみを使いません。
⑭ xschem のウィンドウを閉じてください
ウィンドウ右上の × で閉じます。ターミナルに次の表示が出ます。
[1]+  Done                    xschem
確認は以上です。

確定したこと
5本のツールが使える状態になった。設計データは sky130A に切り替えた。作業場所は /foss/designs/inverter。ツールは Windows のウィンドウとして開く。第3章に進める。
次回からは⑥まで戻る必要はありません
取得した約3.4GBは、パソコンに残り続けます。作られたコンテナも、削除しない限り残ります。講座を再開するたびに導入し直す作業は発生しません。
⑩で設定ファイルに書き足したため、sky130A への切り替えも次回から自動で効きます。⑪を打ち直す必要はありません。
2回目以降の起動のしかたは2.7節にあります。

2.5 Linux・macOS の手順

本節はLinuxとmacOS向けです。Windowsの方で2.4節が成功した場合、本節は読み飛ばして2.6節へ進んでください。
① ターミナルで次の3行を順に実行してください
git clone --depth=1 https://github.com/iic-jku/iic-osic-tools.git
cd iic-osic-tools
./start_vnc.sh
初回は約3.4GBの取得が始まります。 こう出れば成功です
[INFO] Design directory auto-set to /home/user/eda/designs.
[INFO] Container engine auto-set to docker.
[INFO] Container does not exist, creating iic-osic-tools_xvnc_uid_1000 ...
[INFO] To access the VNC session, open a browser and navigate to
       http://localhost:80/?password=abc123
② 最後の行に表示されたURLをブラウザで開いてください
http://localhost:80/?password=abc123
パスワードがURLに含まれているため、入力を求められません。
こう出れば成功です
濃紺の背景にロゴが表示された画面が出ます。これがコンテナの中のデスクトップです。
②でブラウザに何も表示されないとき
最も多い原因は、パソコンのポート80が別のソフトに使われていることです。ウェブサーバ(nginx、Apacheなど)を動かしている場合に起こります。
その場合は、番号を指定して起動し直します。
WEBSERVER_PORT=8080 ./start_vnc.sh
接続先は http://localhost:8080/?password=abc123 になります。8080も使われている場合は、8081、8082と番号を変えます。
番号の指定はコンテナを作るときにしか効きません。すでにコンテナが作られている場合は、2.7節の手順で削除してから作り直します。
③ ターミナルを開いてください
デスクトップにアイコンはありません。ツールはターミナルから起動します。画面の左下に細いパネルがあり、その3番目のアイコンがターミナルです。デスクトップの何もないところを右クリックしてもメニューが出ます。
表2-3 パネルの内容(左から順)
位置内容
1番目アプリケーションメニュー
2番目ファイルマネージャ
3番目ターミナル
4番目開いているウィンドウの一覧
右端時計と、ログアウトなどのメニュー
文字が小さいとき
画面の解像度が 1680×1050 に固定されており、これをブラウザの窓に縮小して表示しているためです。
ターミナルの文字だけを大きくするには、ターミナルの中で Ctrl+ を押します。設定として残すには、ターミナルの中で F10 を押してメニューバーを出し、Edit → Preferences → Appearance の Font を変更します。メニューバーは初期状態では隠れています。
画面全体を大きくするには、解像度そのものを変えます。2.7節の手順でコンテナを削除し、作り直すときに指定します。
DOCKER_EXTRA_PARAMS="-e VNC_RESOLUTION=1280x800" ./start_vnc.sh
コピー&ペーストができないとき
この画面は、パソコン側のクリップボードと直接つながっていません。既定で表示されるのは簡易版の画面で、受け渡しの操作パネルが付いていません。
操作パネルの付いた画面を開きます。
http://localhost/vnc.html?password=abc123
画面の左端に細いつまみが出るので、これをクリックするとパネルが開きます。中のクリップボードの欄に文字を貼り付けると、コンテナ側に渡ります。ターミナルに貼るときは CtrlShiftV を同時に押します。ターミナルでは CtrlV は効きません。
手順が多いので、長い入力は2.6節のファイル経由の方法を使うほうが確実です。
④ 開いたターミナルで、次を順に実行してください
ngspice -v
xschem --version
magic --version
netgen -batch quit
klayout -v
echo $PDK_ROOT
echo 'export PDK=sky130A' >> /headless/.bashrc
echo 'export PDKPATH=$PDK_ROOT/$PDK' >> /headless/.bashrc
export PDK=sky130A
export PDKPATH=$PDK_ROOT/$PDK
echo $PDKPATH
mkdir -p /foss/designs/inverter
cd /foss/designs/inverter
pwd
確認する内容は2.4節の⑧から⑫と同じです。echo $PDKPATH/foss/pdks/sky130A を返し、最後に /foss/designs/inverter が表示されれば完了です。

確定したこと
5本のツールと sky130A が使える状態になった。作業場所は /foss/designs/inverter。第3章に進める。

2.6 ファイルの受け渡し

/foss/designs はパソコン側と共有されている
コンテナの中の /foss/designs は、パソコン側の次の場所と同じものです。片方で作ったファイルは、もう片方からも見えます。
Windows        C:\Users\user\eda\designs
Linux・macOS   /home/user/eda/designs
このため、コンテナを停止してもここに置いたファイルは消えません。逆に、この外(たとえば /tmp/root)に置いたファイルは、コンテナを削除すると消えます。作成するファイルは必ず /foss/designs の下に置きます。

パソコン側のエディタで書く

共有されているので、パソコン側の使い慣れたエディタでファイルを作り、コンテナ側から実行できます。第3章以降で入力が長くなったときに使えます。ブラウザ方式でコピー&ペーストの手順が煩雑な場合も、この方法で回避できます。

① パソコン側でファイルを作ります
Windows の場合、C:\Users\user\eda\designs\check.sh という名前で、次の内容のファイルを作ります。
ngspice -v
echo $PDK_ROOT
② コンテナの中で次の1行を実行します
bash /foss/designs/check.sh
パソコン側で書いた内容が、コンテナの中で実行されます。打ち込むのは1行だけです。
改行コードをLFにする
Windows のエディタは、初期状態で改行コードを CRLF にすることがあります。この形式のファイルをコンテナで実行すると、行末に余分な文字が付いた状態で解釈され、次のように返ります。
$'\r': command not found
Visual Studio Code の場合、画面右下に CRLF と表示されていればクリックして LF に切り替えます。メモ帳の場合は、保存時に改行コードを LF に指定します。
この誤りは第3章以降でも同じ形で現れます。ファイルを作ったのに動かない場合は、まず改行コードを確認します。

2.7 停止と再開

コンテナは、明示的に削除しない限り残り続けます。約3.4GBの取得は最初の一度だけです。講座を再開するたびに導入し直す必要はありません。

Windows(シェル方式)の場合
作業をやめるとき
  exit
  docker stop iic-osic-tools_shell

次回に再開するとき
  docker start -ai iic-osic-tools_shell
まず exit でコンテナの中から抜けます。表示が PS C:\…> に戻ります。
再開の -ai は、起動したうえでその中につなぎ直す指定です。これがないと、起動はするものの表示が戻ってきません。
Linux・macOS(ブラウザ方式)の場合
作業をやめるとき
  docker stop iic-osic-tools_xvnc_uid_1000

次回に再開するとき
  docker start iic-osic-tools_xvnc_uid_1000
末尾の数字はユーザーIDです。id -u で確認できます。多くの環境では 1000 です。
再開したあと、ブラウザで http://localhost:80/?password=abc123 を開き直します。
再開に起動スクリプトを使わない
2回目以降に .\start_shell.bat./start_vnc.sh を実行しても、コンテナは起動しません。スクリプトは、同じ名前のコンテナが既にあることを検出して、次のようなメッセージを返して終わります。
Container iic-osic-tools_shell exists. Restart with "docker start iic-osic-tools_shell" or remove with "docker rm iic-osic-tools_shell" if required.
Linux・macOS版のスクリプトは、ここで s(起動)か r(削除)のキー入力を求めます。Windows版はメッセージを出すだけで、何も実行しません。
再開には docker start を使います。
コンテナを作り直す
画面の解像度や接続ポートを変える場合、いったんコンテナを削除して作り直します。これらはコンテナを作るときにしか決まらないためです。
Windows の場合は次のとおりです。名前の部分は、使っている方式に合わせて読み替えます。
docker stop iic-osic-tools_shell
docker rm iic-osic-tools_shell
削除されるのはコンテナだけです。約3.4GBのツール本体と、eda\designs の中身は残ります。再取得は発生しません。
ただし、コンテナの中で変えた設定(ターミナルのフォントなど)は消えます。作業用のファイルを /foss/designs の外に置いていた場合、それも消えます。
コンテナの一覧は docker ps -a で確認できます。

2.8 環境エラーの切り分け

第3章以降でエラーが出た場合、原因が環境にあるのか作業内容にあるのかを判別します。判断の材料を表にまとめます。

表2-4 症状と確認箇所
症状まず確認すること該当節
'.' は、内部コマンドまたは外部コマンド…コマンドプロンプトで ./ を使っている。Windowsでは .\2.4 ⑥
スクリプトがエディタで開かれるPowerShell で .sh を実行している。Windowsでは .bat2.4 ⑥
用語 '…' は…認識されません先頭に .\ が付いているか。いる場所が合っているか2.4 ⑤⑥
2回目の起動でコンテナが立ち上がらない起動スクリプトではなく docker start を使う2.7
ツールのウィンドウが開かない(Windows)Docker Desktop で WSL 2 が有効か。[1] 28 は成功の合図ではない2.4 ⑬
ブラウザに何も表示されないポート80が別のソフトに使われていないか2.5 ②
文字が小さすぎるブラウザ方式は解像度が固定。ターミナルの文字だけなら Ctrl++2.5
コピー&ペーストができないvnc.html を開くか、ファイル経由に切り替える2.5 / 2.6
そのようなファイルやディレクトリはありませんパソコン側で実行している。表示が /foss で始まっているかを確認2.4 ⑦
$'\r': command not foundファイルの改行コードが CRLF になっている2.6
$PDKPATHsky130A でない初期値は ihp-sg13g2。切り替えたか2.4 ⑩⑪
作ったファイルが消えた/foss/designs の下に置いたか2.6
ファイルを編集できない(Linux)sudo で起動していないか2.2
ダウンロードが途中で止まるディスクの空きが20GB以上あるか2.4 ⑥
第3章で部品一覧に sky130_fd_pr が出ない$PDKPATHsky130A を指しているか2.4 ⑪
magic で設計規則が効かない起動時にテックファイルを指定しているか第6章
この章のまとめ
・パソコンに入れたソフトは Docker Desktop の1本のみ
・IIC-OSIC-TOOLS には5本のツールと sky130A が設定済みで入っている
・Windows は .\start_shell.bat。ツールは Windows のウィンドウとして開く
・Linux・macOS は ./start_vnc.sh。接続は http://localhost:80/?password=abc123
・2回目以降の起動は docker start。起動スクリプトでは立ち上がらない
・設計データの初期値は ihp-sg13g2.bashrc に2行足して sky130A に切り替える
・作業場所は /foss/designs/inverter。この外に置いたファイルは消える
・長い入力は、パソコン側でファイルを作ってコンテナから実行する。改行コードは LF
$PDK_ROOT/foss/pdks。第3章以降のコマンドで使う