集積回路とeda spiceの使い方 - ... · 集積回路とeda spiceの使い方 土谷亮...

67
集積回路とEDA SPICEの使い方 土谷 亮 [email protected] 1 集積回路工学特論 201668スライド・サンプル等は以下から入手してください 小野寺研講義集積回路工学特論 http://www-lab13.kuee.kyoto-u.ac.jp/modules/contents/lecture/spice.html

Upload: others

Post on 29-Aug-2019

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

集積回路とEDASPICEの使い方

土谷亮

[email protected]

1

集積回路工学特論 2016年6月8日

スライド・サンプル等は以下から入手してください小野寺研→講義→集積回路工学特論http://www-lab13.kuee.kyoto-u.ac.jp/modules/contents/lecture/spice.html

Page 2: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

今日の内容

そもそもEDAとはなぜ必要なのか

SPICEとは

SPICEの使い方

解析の種類

回路・解析条件の与え方

操作手順:LTspice

2

Page 3: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

集積回路とEDA

Electric Design Automation (設計自動化技術)

計算機による設計・製造支援ツール

CAD (Computer Aided Design)

CAE (Computer Aided Engineering)

CAM (Computer Aided Manufacturing)

– 厳密な使い分けは存在しない

多数の会議が開催される集積回路の一大研究分野

市場規模は年間66億ドル程度 (2012年)

年率7~8%の成長市場

3

Page 4: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

なぜEDAが必要なのか

4Photo from Situation Publishing Ltd., http://www.reghardware.com/

EDAのなかった時代

Intel 4004 (1971年)3mm x4mm, 10mmプロセス, 2300Tr

4bit, 動作周波数741kHz入出力16ピン

世界初の商用マイクロプロセッサ

ほとんどのロジックは一人~数人の技術者が設計

ちなみに4004の設計者は日本人(嶋正利)

紙と鉛筆の世界

このころはそれでよかったが・・・

Page 5: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

現在の集積回路

5

Renesas SH-Mobile G3 (2008)9.3mm x 9.3mm, 65nmプロセス, 3億Tr

配線層8層,電源ドメイン21個入出力617ピン

Photo from ISSCC2008

手作業では無理

機能検証

配置・配線

タイミング検証

マスクデータ作成

etc. etc…

開発期間は半年~1年

Page 6: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

集積回路の複雑さ

6

D-flipflopの立体イメージこれで1ビット

レポートで作成したNANDレイアウトは4Tr,配線層1

最先端プロセス数億Tr

配線層10前後

Page 7: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

Mooreの法則

7

Page 8: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

集積回路の断面構造

8

10層配線プロセスの立体イメージ最小の配線幅は100nm以下

Page 9: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

EDAの恩恵 :生産性

9

Year

Pro

du

ctiv

ity

(lo

g) ?

ハードウェア規模3年で2倍 (Moore’s law)

生産性4年で2倍 (?)

Productivity gap

Productivity gap:ハードウェア規模の増大に生産性が追いつかない

設計,評価,検証 etc.

試作して測って・・・を計算機上で

回路シミュレータ(SPICEなど)

回路図からレイアウトを自動作成

自動配置配線

レジスタのレベルから回路図を生成

ハードウェア記述言語(Verilog,VHDL)

「生産性を上げる」のが大きな目的

Page 10: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

実測とEDA

10

実測試作に時間がかかる

測定自体が難しい擾乱なしの測定は不可能

予期せぬ事態も捉えることができる

EDAすぐに評価が可能

任意の点を評価可能擾乱なしに評価が可能

モデル化されていない事象は評価できない

実測もシミュレーションも「何を評価しているのか」を理解して使うことが重要

わけもわからずSPICEをまわし続ける人を貶める “SPICE monkey” という言葉も

Page 11: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

EDAの出発点 SPICEとは

Simulation Program with Integrated Circuit Emphasis

UC Berkeleyで1973年に開発

スパコンが100MFLOPSぐらいの時代ちなみに Intel Core i7 は50GFLOPSぐらい

入力はパンチカードだった

非線形素子を含む回路を解析できる

“SPICE”は「トランジスタレベルの回路シミュレータ」の代名詞

11

Page 12: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

SPICEの重要性

回路シミュレータの “Golden simulator”

SPICEが精度の基準

集中定数で表せない高周波回路は除く

シンプルで強力な非線形問題ソルバー

用途は集積回路だけではない

回路にマッピングできれば電気回路以外にも

熱抵抗と熱容量で熱の拡散を解く,など

「問題をどうSPICEにマッピングするか」という研究も行われている

12

Page 13: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

今日の内容

そもそもEDAとは

なぜ必要なのか

SPICEとは

SPICEの使い方

解析の種類

サンプルを動かす

LTspiceの使い方

便利機能

13

Page 14: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

SPICEでできる解析

直流解析 (DC analysis)

時間的に変化しない電圧・電流の関係

トランジスタの動作点解析など

小信号解析 (AC analysis)

特定バイアス下での周波数応答

過渡解析 (Transient analysis)

時間的に変化する信号に対する応答

14

Page 15: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

直流解析

回路にある電圧・電流を与えた際に各部の電流・電圧がどうなるか?

15

Ids

VgsVds

例:トランジスタの電流電圧特性

指定した電圧(Vgs,Vds)を与えたときに電流(Ids)はどのぐらい流れるか?を解析

回路の入出力特性,アナログ回路のバイアス確認などに使う

対応する測定器:デジタルマルチメータ

Page 16: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

小信号解析

回路の周波数応答を解析する

16

小信号:素子が線形素子とみなせる程度の大きさの信号

例:RCフィルタの周波数応答

入力信号の周波数を上げていくとゲインはどうなるか?を解析

フィルタ,アンプなどの周波数特性の確認に使う

対応する測定器:ネットワークアナライザ

Page 17: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

過渡解析

時間的に変化する信号に対する応答を解析

17

対応する測定器:オシロスコープ

小信号解析に対して大信号解析と言うことも

例:インバータの入出力波形

IN1にパルスを入力したら各部の波形はどうなるか?を解析

遅延時間,信号遷移時間,遅延などの評価に使う

=非線形性が考慮される

Page 18: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

サンプルを動かす

18

Page 19: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

サンプルを動かす

19

とりあえず動かす

ファイルは小野寺研からダウンロード

Page 20: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

サンプルを動かす – ファイルの読み込み

20

1.小野寺研のページから inv_example.ascをダウンロード2.LTSpiceを起動し,File → Openで inv_example.ascを選択

inv_example.cirが見つからない場合は「ファイルの種類」が 「Schematics (*.asc)」 になっていることを確認すること

回路図が表示される

Page 21: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

サンプルを動かす –モデルの指定

21

1.小野寺研のページから X.XXプロセストランジスタモデルパラメータ SPICE_param_X.XXum.txtをダウンロード

2..libでダウンロードしたファイルを指定する

右クリック

Browseを押してファイルを指定

※「モデルパラメータ」が何なのかは後述

Page 22: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

サンプルを動かす – 解析実行

22

3.Simulate → Run でシミュレーションを実行

正常終了すると波形ウィンドウが開く(この時点では波形は何も表示されない)

エラーメッセージが出た場合はネットリストが間違っている.エラーメッセージを読んで対応すること.

エラーメッセージの例

Page 23: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

サンプルを動かす – 波形の表示

23

4.回路図上で見たいノードをクリックすると波形が表示される

電圧波形 (ポインタがプローブの形) 電流波形 (ポインタがクランプの形)

シミュレーションが正常に終わっていないと(当然)波形は見られない波形が表示できるノードの上ではポインタの形が変わる

Page 24: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

サンプルを動かす – 波形の表示例

24

Page 25: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

サンプルを動かす – データの書き出し

25

5.波形ウィンドウを選択した状態で,File → Export

出力したいノードを選択してOKを押すと指定したファイルに数値データが書き出される結果はテキストファイルなのでメモ帳等で表示可能

Page 26: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

注意点

LTSpiceは選択しているウィンドウの種類によってメニューの構成が変わることに注意

波形の操作や書き出しは波形ウィンドウを選択した状態でしか行なえない

26

Page 27: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

回路図の作り方

27

Page 28: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

SPICEの入力

28

素子の接続関係

電気回路は素子と節点からなる

グラフとして記述できる

モデルパラメータ(モデルカード)

回路が非線形素子を含む場合,その特性は素子の種類に応じたパラメータで表現する

解析条件オプションなど

電圧や周波数の範囲何を出力するか

etc.

昔はテキストで記述していた(ネットリスト)現在はグラフィカルに記述

SPICEが必要とする情報は大きく3つ

Page 29: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

SPICEの入力

29

素子の接続関係

回路図を書く

モデルパラメータ(モデルカード)

回路が非線形素子を含む場合,その特性は素子の種類に応じたパラメータで表現する

解析条件オプションなど

電圧や周波数の範囲何を出力するか

etc.

Page 30: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

GUI(回路図エディタ)による回路図入力

30

ツールバー,もしくはメニューのEditから置きたい素子を選んで配置,配線でつないで回路図を作る

コンポーネント配線

電圧源,トランジスタなどはほとんど「コンポーネント」から選択

コンポーネント選択ウィンドウこの課題で使うのは- voltage (電圧源)- nmos4 (nMOS)- pmos4 (pMOS)- Ground

※ nmos4,pmos4はバックゲートの接続を忘れないように注意

※Groundは必ず必要

グラウンド

Page 31: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

素子の特性設定

31

素子を右クリックすると特性入力ウィンドウが開く

電圧源の設定

負荷容量の設定

pMOSの設定

適切なモデル名になっているか注意

Page 32: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

MOSトランジスタ

32

MOSトランジスタは4端子素子であることに注意

g

s

d

b

Model Name:モデル名 (後述)Length (L):チャネル長Width (W):チャネル幅Drain Area (AD): ドレイン面積Source Area (AS):ソース面積Drain Perimeter (PD): ドレイン周囲長Source Perimeter (PS):ソース周囲長No. Parallel Devices (M):フィンガー数

(今回は使わない)

gs d

L,W,AD,PD,AS,PSはレイアウトに依存する

L

W

Page 33: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

AD,PD,AS,PSの意味

33

gs d

W

L

g

s d

ドレイン/ソース領域のPN接合の容量を計算するのに使用

PSCASCC

PDCADCC

jswjsource

jswjdrain

Cj : 底面の容量Cjsw:側壁(Sidewall)の容量

正しく設定しないと遅延時間が狂う桁の間違いに注意

Page 34: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

数値の書式

34

数値+接尾辞で記述が可能1f = 1e-151p = 1e-121n = 1e-91u = 1e-61m = 1e-31k = 1e+31Meg = 1e+6

マイクロ (u, 1e-6)とメガ(Meg, 1e+6)に注意

1Megのつもりで 1M と書くと1e+6ではなく 1e-3になる

接尾辞以外の文字は無視される

Rload 1 2 10kRload 1 2 10kOhm

Ohmは無視されるのでどちらも同じ

Page 35: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

信号源の作り方

35

電圧源に時間的に変化する電圧を設定することができる

折れ線 (PWL; Piecewise Linear)

(時刻,電圧)の値を任意の個数列挙

(t1, v1)

(t2, v2)

(t3, v3) (t4, v4)

(t5, v5)

(t6, v6)

(t7, v7)

※ pulseを使ってもよい

Page 36: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

入力波形の設定

36

電圧源でAdvancedを押すと波形の設定が可能

PWLを選択

値を入力

Page 37: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

SPICEの入力

37

素子の接続関係

回路図を書く

モデルパラメータ(モデルカード)

回路が非線形素子を含む場合,その特性は素子の種類に応じたパラメータで表現する

解析条件オプションなど

電圧や周波数の範囲何を出力するか

etc.

Page 38: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

モデルパラメータ

38

モデルパラメータ (モデルカード)とは:非線形素子の特性を記述する方程式のパラメータ

ds

2

thgsoxds 12

1VVV

L

WCI m 例えば

MOS飽和領域の電流

μ,Cox,λはデバイス依存のパラメータ→ モデルパラメータとして与える

モデルパラメータ (MOS).MODEL modelname type LEVEL=…

modelname:モデルの名前.MOSの素子記述内で指定するtype:MOSの場合は NMOS / PMOS

モデルパラメータは授業のWebページからコピーして使うこと

Page 39: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

モデルの読み込み (1)

39

トランジスタのモデルパラメータの読み込みが必要

ツールバーの SPICE Directive

.lib “PATH¥filename”を入力

ドット (ピリオド)を忘れないように注意

※先頭のドットはネットリストをテキストで入力していた頃の名残

Page 40: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

モデルの読み込み (2)

40

ツールバーの SPICE Directive

モデルファイルの中身をそのまま貼ってもOK

Page 41: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

間違えやすい点

41

読み込んだファイルのモデル名と回路図のModel Nameが一致しているかどうか確認すること

モデルパラメータの中身:.MODEL CMOSN025 NMOS LEVEL = 3+ TOX = 5.7E-9 NSUB = 1E17 GAMMA = 0.4317311 + PHI = 0.7 VTO = 0.4238252 DELTA = 0

.....

.MODEL CMOSP025 PMOS LEVEL = 3+ TOX = 5.7E-9 NSUB = 1E17 GAMMA = 0.6348369

回路図のModel Name

Page 42: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

SPICEの入力

42

素子の接続関係

回路図を書く

モデルパラメータ(モデルカード)

回路が非線形素子を含む場合,その特性は素子の種類に応じたパラメータで表現する

解析条件オプションなど

電圧や周波数の範囲何を出力するか

etc.

Page 43: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

解析条件の設定

43

解析条件の設定 (過渡解析).tran step end

時刻0から step刻みで endまで解析

どういう値に設定すればよいかは回路によって変わる自分の回路にとって適切な値がどの程度かよく考えること

Page 44: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

解析条件の設定

44

Edit → SPICE Analysis から解析条件を設定

なぜか timestepを設定する欄がないので,ここに直接 .tran文を入力

もしくは,ツールバーの SPICE Directiveから直接入力も可能

SPICE Directive ボタン

ここに直接 .tran文を入力

Page 45: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

完成図

45

Simulation → Runでシミュレーションを実行

Page 46: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

便利機能

46

Page 47: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

サブサーキット

自分の回路をコンポーネントのように使うことができる

プログラミングで言う関数のようなもの

NAND,INVをサブサーキット化すると楽

47

Page 48: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

サブサーキットの作り方(1/2)

48

Label Net

ピン名

Typeを選ぶInput/Output/Bidirectional

まず回路図を書く端子にしたいノードにピンを置く

Save asで .ascファイルに保存

Page 49: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

サブサーキットの作り方 (2/2)

49

シンボル(サブサーキットの回路記号)を作る1.File → New Symbolでシンボル編集画面を開く2.Draw → Line,Circleなどを使って記号を書く(形は何でもよい)3.Edit → Add Pin/Portでピンを作成ピンは全て回路図で配置したピンと同じ名前にすること

ピン名シンボルの例

4.Save as でシンボルを保存サブサーキット回路図と同じフォルダに同じ名前で保存すること例)回路図 inv-sub.asc / シンボル inv-sub.asy

Page 50: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

サブサーキットの使い方

50

通常の回路コンポーネントと同じように配置可能

Component

Top Directoryを回路図・シンボルを保存したフォルダに変える

作成したシンボル

保存したファイル名

配置した後は通常のコンポーネントと同じく右クリックで内容確認可能

Page 51: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

.measureによる自動計測

51

解析結果から指定した2点の距離を測定する

.measureによる測定.measure tran name+ trig v(node1) val=v1 cross=m+ targ v(node2) val=v2 cross=n

「node1の電圧がm回目に v1になった時刻」(トリガ)から「node2の電圧がn回目に v2になった時刻」(ターゲット)までの時間を出力する

crossを riseにすると「m回目に電圧が v1を下から上に横切った時刻」fallにすると「m回目に電圧が v1を上から下に横切った時刻」

Page 52: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

.measureの例

52

V(n1)

t

V=v1

0

rise

cross

fall

.measure tran name+trig v(n1) val=v1 {cross|rise|fall}=1+targ v(n1) val=v1 {cross|rise|fall}=2

想定外のところでトリガがかかったりターゲットにひっかかったりするので

使う場合はきちんと波形を確認してから使うこと

Page 53: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

.measureによる測定

53

.measure文で指定した条件の時間などを測定することができる書式は講義資料「SPICEの使い方」も参照

例えば入力が2.5Vになってから出力が2.5Vになるまでの時間を計測するには.measure tran delay trig v(2) val=2.5 rise=1 targ v(3) val=2.5 fall=1

ネットリストに .measureを書いてシミュレーションを実行するとログファイル (.log)に結果が表示される

trigの条件を満したのは 2.025ns,targの条件を満したのは 2.13655nsその間の時間は 0.11144ns

Page 54: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

トラブルシューティング1

サブサーキットを使うと楽

エラーが出る場合

エラーメッセージをよく読みましょう

モデル名の間違いに注意

エラーが出ないのに動作がおかしい場合

つなぎ忘れ

ノードがフローティングになっても解析は終わる

MOSのバックゲートのつなぎ忘れに注意

解析条件が正しいか確認

54

Page 55: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

トラブルシューティング2

動作はしているが何か変 (速すぎ/遅すぎ)

MOSのボディの電位がおかしい/つなぎ忘れ

閾値電圧が変わって速さが変わる

数字の入力間違い

容量の桁を間違えやすい

MOSのAD, AS, PD, PSの桁も間違えやすい– PD/PSは 1mmオーダー,AD/ASは mm2,つまり1e-12オーダー

– そもそもAD/AS/PD/PSを記述しない(=0)でもシミュレーションは動くが,遅延時間が異常に小さくなる

55

Page 56: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

おまけ:シミュレーションの落とし穴

56

その1.モデルの有効範囲に注意

シミュレーションでは「結果は出るがその結果に意味はない」ことが起こる

例) MOSに電源電圧100Vかけてみる→ シミュレーション上は動く

実際やると当然壊れる

その2.現実には存在しない安定状態に注意

入力をVdd/2にすると出力は?

シミュレーション:出力も Vdd/2で安定する(ことがある)

実際:わずかなノイズやp/nのアンバランスで0か Vddのどちらかで安定

シミュレーションの結果を盲信しないことが重要

Page 57: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

LTspiceの使い方

LTspice : Linear Technology が配布しているSPICE http://www.linear-tech.co.jp/designtools/software/

spice3 に改良を加えたもの

Windowsで動く

その他利用可能なSPICE

ngspice (Next Generation SPICE)

“ngspice for windows”でVectorからダウンロード可能

57

Page 58: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

情報源

58

小野寺研集積回路工学特論のページhttp://www-lab13.kuee.kyoto-u.ac.jp/modules/contents/lecture/spice.html

Linear Technology (LTspice, マニュアルダウンロード)http://www.linear-tech.co.jp/designtools/software/

UC Berkeley “The Spice Page”http://bwrc.eecs.berkeley.edu/Classes/IcBook/SPICE/

NGSPICEhttp://ngspice.sourceforge.net/

Page 59: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

おまけ:ネットリストの書き方

昔は当然グラフィカルなインターフェースはない

回路図をテキストで記述

実例はサンプルのネットリスト(inv_example.cir)を参照

59

Page 60: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

回路図の記述方法

60

電気回路は素子と節点で記述できる

element1 element3

elem

en

t2

element4

node1

node2

node3

node4

注1:素子には方向があるものがある(電圧源,電流源など)

注2:素子は3個以上の端子をもつことがある(トランジスタはD, G, S, Bの4端子素子)

element1 node1 node3element2 node1 node2element3 node3 node4element4 node2 node3 node4

これをテキストで書くと・・・

Page 61: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

ネットリストの書式:基本構造

61

Xname node1 node2 … nodeN value PARAMETERS

記述の基本構造

素子の種類を示すアルファベット1文字例:R → 抵抗C→ キャパシタV → 電圧源M → トランジスタ

素子の名前英数字からなる文字列素子の種類が違えば重複可例:

Rin 1 2 50Rin 2 3 50

Rin 1 2 50Cin 2 3 100p

接続されたノード数は素子によって決まっているノード名は英数字文字列ただしノード”0”はグラウンド

素子の値抵抗なら抵抗値電圧源なら電圧値がないものもある(例:トランジスタ)

NG

OK

補助パラメータトランジスタのサイズなど必要に応じて指定

※記述は1行に書く.複数行にわたる場合は2行目以降の先頭に “+” をつける

Page 62: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

ネットリストの書式:2端子素子

62

抵抗 Rname node+ node- valueキャパシタ Cname node+ node- value電圧源 Vname node+ node- value電流源 Iname node+ node- value

電圧源,電流源には方向があることに注意電圧源は node-が電圧の基準点電流源は node-から node+に向かって電流が流れる抵抗,容量には方向はない

node+ node-

Page 63: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

ネットリストの書式:解析条件,出力

63

解析条件の設定 (過渡解析).tran step end

時刻0から step刻みで endまで解析どういう値に設定すればよいかは回路によって変わる自分の回路にとって適切な値がどの程度かよく考えること

解析結果の出力(過渡解析).print tran V(node1) V(node2) …

指定したノードの各時刻における電圧が出力される

ネットリストの記述終了.end

必ず書かなければならない.この行以降は無視される.

Page 64: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

テキストのネットリストを使ったときの波形表示

64

波形ウィンドウを選択し,Plot Settings → Add trace で見たい波形を選択

ここで選択できるのはネットリストの .printで指定したノードだけなので注意

波形を選択してOKを押すと波形ウィンドウに波形が表示される

Page 65: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

ネットリストの書式:雑多な注意

回路中にはかならずグラウンド (ノード “0”)がなければならない

かつノード0への直流のパスが必要

ネットリストの1行目はタイトル

行の先頭が “*”の行はコメント

大文字・小文字は区別されない

“.end”を書き忘れないように注意

65

Page 66: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

ネットリストの書式:サブサーキット

66

SPICEでは素子を組み合わせて独自の素子を定義することができる

サブサーキットの定義.subckt name node1 node2 …* circuit description.ends

INV,NANDなど同じ回路が何度も出てくるときに便利

サブサーキットを使うXname node1 node2 … nodeN name

Page 67: 集積回路とEDA SPICEの使い方 - ... · 集積回路とEDA SPICEの使い方 土谷亮 tsuchiya@vlsi.kuee.kyoto-u.ac.jp 1 集積回路工学特論2016年6月8日 スライド・サンプル等は以下から入手してください

サブサーキットの例

67

*inv

.tran 0.05n 4n

.print tran v(3)

Vdd 1 0 5VVin 2 0 pwl 0 5V …Mxp 3 2 1 1 CMOSP L=…Mxn 3 2 0 0 CMOSN L=…Cout 3 0 0.2p

.MODEL CMOSP PMOS ……

.end

*inv-subckt

.tran 0.05n 4n

.print tran v(3)

Vdd 1 0 5VVin 2 0 pwl 0 5V …Xinv 2 3 1 0 INVCout 3 0 0.2p

.subckt inv in out vdd vssMxp out in vdd vdd CMOSP L=…Mxn out in vss vss CMOSN L=….ends

.MODEL CMOSP PMOS ……