「レイアウト設計超入門: SiliWizで遊ぶ」を参考にCMOSインバータを作ってみる
はじめに
これまでオープンソースPDKを使いながら、サンプルレイアウトを参考にレイアウトを楽しんでいました。
しかし、サンプルをなぞることはできても、いざ「何もない状態から自分でレイアウトを描いてみよう」とすると、思ったように手が動きません。
「Diffusionはどこに置けばいいんだろう?」
「Polyはどう引けばMOSFETになるんだっけ?」
「WellやTapはどこに配置するのが正しいの?」
そんな場面が何度もありました。
そこで改めて考えてみると、
そもそもレイアウト設計を行うための最低限の基礎知識が、まだ十分に身についていないのではないか。
と感じるようになりました。
そんなとき、WebブラウザだけでCMOSレイアウトを体験できる教育用ツール SiliWiz を知りました。
インストール不要で、
- CMOSレイアウト
- MOSFETの構造
- 断面表示
- シミュレーション
- SPICEネットリスト
まで一通り体験できる、とても面白いツールです。
さらに、土谷先生の 「レイアウト設計超入門: Siliwizで遊ぶ」 という記事を参考にしながら、自分でも実際にCMOSインバータを作成してみることにしました。
オープンソースPDKを使ったレイアウト設計をより深く理解するためにも、まずはSiliWizでレイアウト設計の基本を体験してみたいと思います。
この記事について
本記事は私自身が学習した内容をまとめたものです。
詳しい解説や考え方については、ぜひ土谷先生の元記事もご覧ください。
参考記事
SiliWizとは
SiliWizはブラウザだけで利用できる教育用CMOSレイアウトツールです。リアルタイムで断面図やシミュレーション結果を確認できるため、レイアウトとデバイス構造の関係を直感的に理解できます。
インストール不要で、
- CMOSレイアウト
- MOSFETの構造
- 断面表示
- DRC確認
- SPICEシミュレーション
まで体験できます。
初めてレイアウト設計を学ぶには、とても分かりやすいツールです。
今回作るもの
今回はデジタル回路の基本となる
CMOSインバータ
をレイアウトします。
完成すると、
- CMOSレイアウト
- シミュレーション
- 消費電流
- SPICEネットリスト
まで確認できます。
1. SiliWizを起動する
ブラウザで
を開きます。
最初はサンプルレイアウトが表示されています。
ここで一度、起動時の画面右側を
Cross Section & DRC
へ切り替えます。
そうすると縦のスライダーの位置の断面図を見ることができます。
断面図を見ながらレイアウトを作成すると、
- 基板
- Well
- Diffusion
- Poly
の関係がとても理解しやすくなります。
起動時の断面図
2. 新しいレイアウトを作成する
画面上部の CLEAR をクリックします。
これで新しいレイアウトを作成できます。
CLEAR後の画面
3. p substrateを作る
Layersから
p substrate
を選択します。
レイアウト全体を覆うように描画します。
これはCMOS全体の土台となるシリコン基板です。
4. nMOSを作る
Layersから
n diffusion
を選択します。
画面下側へ配置します。
この段階では、まだMOSFETにはなっていません。
5. Polyを描く
続いて
polysilicon
を選択します。
PolyとDiffusionが交差した部分がMOSFETになります。
ここがゲートです。
6. Source・Drainを取り出す
左右へ
Metal1 Via
を配置します。
これが
- Source
- Drain
になります。
7. Gateを取り出す
Polyを少し延長し、
Metal1 Viaを配置します。
ここが入力(IN)になります。
8. p tapを配置する
バックゲート接続用に
- p tap
- Metal1 Via
p substrateはVSSへ接続します。
9. N Wellを作る
Layersから
N Well
を選択します。
画面上半分へ描画します。
この中にPMOSを作ります。
10. PMOSを作る
今度は
- p diffusion
- Poly
- Via
を配置します。
作り方はnMOSと同じですが、
N Wellの中に作る
ことがポイントです。
11. n tapを配置する
PMOSのバックゲート用です。
- n tap
- Metal1 Via
こちらはVDDへ接続します。
12. Metal1で配線する
次の4本を配線します。
- IN
- OUT
- VDD
- VSS
ラベルも設定します。
端子となるレイヤーを左クリックすると次のメニューが現れるので、Set Labelを選択

これでCMOSインバータが完成しました。
13. シミュレーションしてみる
右側を
Simulation
入力(IN)がLowからHighになると、
出力(OUT)はHighからLowになります。
CMOSインバータとして正しく動作していることが確認できます。
14. 消費電流も見てみる
「Plot Signals」→「+」から
i(vss)*1000
緑色の波形が電源電流です。
入力が切り替わる瞬間だけ電流が流れていることが分かります。
これがCMOS回路の低消費電力という特徴です。
15. SPICEネットリストも確認できる
Show SPICE (advanced) をONにすると、SPICEネットリストを見ることが出来ます。レイアウトからMOSFETや寄生容量が自動抽出されていることが分かります。
普段回路図しか見ていないと意識しませんが、実際のIC設計ではレイアウトからこのような情報が抽出され、シミュレーションに利用されています。
* SiliWiz Simulation (app rev e3863bb)
*signals: IN OUT VDD VSS
Vdd vdd 0 5 ; power supply: 5V
Vss vss 0 0 ; ground
* Input pulse: ramp the in signal
Vin in 0 pulse (0 5 0u 50u 50u 1 1)
* Extracted circuit:
M1000 OUT IN VSS VSS nmos w=9.09u l=2.79u
+ ad=72.8109p pd=34.2u as=57.267p ps=30.78u
M1001 OUT IN VDD VDD pmos w=10.71u l=3.06u
+ ad=89.6427p pd=38.16u as=68.4369p ps=34.2u
C0 OUT VDD 0.22fF
C1 IN VDD 0.07fF
C2 IN OUT 0.03fF
* Models:
.model nmos nmos (vto=1 tox=15n uo=600 cbd=20f cbs=20f gamma=0.37)
.model pmos pmos (vto=-1 tox=15n uo=230 cbd=20f cbs=20f gamma=0.37)
* Simulation parameters:
.tran 833.33n 100u
.end
寄生容量も自動で抽出されています。
レイアウトから
- MOSFET
- 配線
- 寄生容量
が抽出され、SPICEシミュレーションまで行えることが分かります。
まとめ
今回、土谷先生の記事を参考にSiliWizでCMOSインバータをレイアウトしてみました。
実際に手を動かしてみることで、
- MOSFETの構造
- PolyとDiffusionの関係
- WellやTapの役割
- Metal配線
- SPICE抽出
- シミュレーション
まで、一連の流れを体験することができました。
教育用ツールではありますが、レイアウト設計の基本を学ぶには非常に優れた教材だと感じました。
おわりに
次回は、今回学んだ内容を発展させて、
- KLayout
を使った実際のレイアウト設計にも挑戦してみたいと思います。
最後まで読んでいただき、ありがとうございました。

















