• 検索結果がありません。

スライド 1

N/A
N/A
Protected

Academic year: 2021

シェア "スライド 1"

Copied!
69
0
0

読み込み中.... (全文を見る)

全文

(1)

集積回路とEDA

SPICEの使い方

塩見 準*,

土谷 亮

* [email protected]

集積回路工学特論 2017年6月21日

スライド・サンプル等は以下から入手してください

小野寺研→講義→集積回路工学特論

http://www-lab13.kuee.kyoto-u.ac.jp/modules/contents/lecture/spice.html

(2)

今日の内容

そもそもEDAとは

なぜ必要なのか

SPICEとは

SPICEの使い方

解析の種類

回路・解析条件の与え方

操作手順:LTspice

2

(3)

集積回路とEDA

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

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

CAD (Computer Aided Design)

CAE (Computer Aided Engineering)

CAM (Computer Aided Manufacturing)

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

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

分野

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

(4)

なぜEDAが必要なのか

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

EDAのなかった時代

Intel 4004 (1971年) 3mm x4mm, 10mmプロセス, 2300Tr 4bit, 動作周波数741kHz 入出力16ピン 世界初の商用マイクロプロセッサ 

ほとんどのロジックは

一人~数人の技術者

が設計

ちなみに4004の設計

者は日本人(嶋正利)

紙と鉛筆の世界

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

(5)

現在の集積回路

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

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

Photo from ISSCC2008

手作業では無理

機能検証

配置・配線

タイミング検証

マスクデータ作成

etc. etc…

開発期間は半年~1

最新(2017年)のプロセッサだと

トランジスタ数は70億以上

(6)

集積回路の複雑さ

6

D-flipflopの立体イメージ

これで1ビット

レポートで作成した

NANDレイアウトは

4Tr,配線層1

最先端プロセス

数億Tr

配線層10前後

(7)
(8)

集積回路の断面構造

8

10層配線プロセスの立体イメージ

最小の配線幅は100nm以下

(9)

EDAの恩恵 : 生産性

Year P roducti vit y (l og) ? ハードウェア規模 3年で2倍 (Moore’s law) 生産性 4年で2倍 (?) Productivity gap

Productivity gap:

ハードウェア規模の増大に

生産性が追いつかない

設計,評価,検証 etc.

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

回路シミュレータ

(SPICEなど)

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

自動配置配線

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

ハードウェア記述言語

(Verilog,VHDL)

「生産性を上げる」のが

大きな目的

(10)

実測とEDA

10

実測

試作に時間がかかる

測定自体が難しい

擾乱なしの測定は不可能

予期せぬ事態も捉える

ことができる

EDA

すぐに評価が可能

任意の点を評価可能

擾乱なしに評価が可能

モデル化されていない

事象は評価できない

実測もシミュレーションも「何を評価しているのか」を

理解して使うことが重要

(11)

EDAの出発点 SPICEとは

Simulation Program with Integrated Circuit

Emphasis

UC Berkeley で1973年に開発

スパコンが100MFLOPSぐらいの時代

ちなみに Intel Core i7 は50GFLOPSぐらい

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

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

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

(12)

SPICEの重要性

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

SPICEが精度の基準

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

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

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

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

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

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

行われている

12

(13)

今日の内容

そもそもEDAとは

なぜ必要なのか

SPICEとは

SPICEの使い方

解析の種類

サンプルを動かす

LTspiceの使い方

便利機能

(14)

SPICEでできる解析

直流解析 (DC analysis)

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

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

小信号解析 (AC analysis)

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

過渡解析 (Transient analysis)

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

14

(15)

直流解析

回路にある電圧・電流を与えた際に各部の電

流・電圧がどうなるか?

Ids Vgs Vds

例:トランジスタの

電流電圧特性

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

回路の入出力特性,

アナログ回路のバイアス確認

などに使う

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

(16)

小信号解析

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

16

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

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

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

フィルタ,アンプなどの

周波数特性の確認に使う

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

(17)

過渡解析

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

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

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

例:インバータの

入出力波形

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

遅延時間,信号遷移時間,

遅延などの評価に使う

= 非線形性が考慮される

(18)

サンプルを動かす

(19)

サンプルを動かす

とりあえず動かす

ファイルは

小野寺研から

ダウンロード

(20)

サンプルを動かす –

ファイルの読み込み

20

1.小野寺研のページから inv_example.asc をダウンロード

2.LTSpiceを起動し,File → Open で inv_example.asc を選択

inv_example.asc が見つからない場合は

「ファイルの種類」が 「Schematics (*.asc)」 になっていることを確認すること

(21)

サンプルを動かす –

モデルの指定

1.小野寺研のページから X.XXプロセス トランジスタ

モデルパラメータ SPICE_param_X.XXum.txt をダウンロード

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

右クリック

Browseを押して

ファイルを指定

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

(22)

サンプルを動かす

解析実行

22

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

正常終了すると波形ウィンドウが開く

(この時点では波形は何も表示されない)

エラーメッセージが出た場合は

ネットリストが間違っている.

エラーメッセージを読んで対応すること.

エラーメッセージの例

(23)

サンプルを動かす

波形の表示

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

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

シミュレーションが正常に終わっていないと(当然)波形は見られない

波形が表示できるノードの上ではポインタの形が変わる

(24)

サンプルを動かす

波形の表示例

(25)

サンプルを動かす

データの書き出し

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

出力したいノードを選択してOKを押すと指定したファイルに

数値データが書き出される

(26)

注意点

LTSpiceは選択しているウィンドウの種類に

よってメニューの構成が変わることに注意

波形の操作や書き出しは波形ウィンドウを選択し

た状態でしか行なえない

26

(27)
(28)

SPICEの入力

28 素子の接続関係 電気回路は素子と 節点からなる グラフとして記述できる モデルパラメータ (モデルカード) 回路が非線形素子を 含む場合,その特性は 素子の種類に応じた パラメータで表現する 解析条件 オプションなど 電圧や周波数の範囲 何を出力するか etc.

昔はテキストで記述していた(ネットリスト)

現在はグラフィカルに記述

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

(29)

SPICEの入力

素子の接続関係 回路図を書く モデルパラメータ (モデルカード) 回路が非線形素子を 含む場合,その特性は 素子の種類に応じた パラメータで表現する 解析条件 オプションなど 電圧や周波数の範囲 何を出力するか etc.

(30)

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

30

ツールバー,もしくはメニューのEditから置きたい素子を選んで配置,

配線でつないで回路図を作る

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

コンポーネント選択ウィンドウ

この課題で使うのは - voltage (電圧源) - nmos4 (nMOS) - pmos4 (pMOS) - Ground ※ nmos4,pmos4はバックゲートの接続を 忘れないように注意 ※

Ground は必ず必要

グラウンド

(31)

素子の特性設定

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

電圧源の設定 負荷容量の設定 pMOSの設定 適切なモデル名になっているか注意

(32)

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):

フィンガー数

s g d

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

L

(33)

AD,PD,AS,PSの意味

g

s

d

W

L

g

s

d

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

PS

C

AS

C

C

PD

C

AD

C

C

jsw j source jsw j drain

Cj : 底面の容量

Cjsw: 側壁(Sidewall)の容量

正しく設定しないと遅延時間が狂う

桁の間違いに注意

(34)

フィンガー数 (M) の意味

34

フィンガー数(M)に応じてトランジスタの並列数を変更可能

M=1

g s d b

M=2

g s d b g s d b

M を用いることでインバータの並列数を変更可能

(レポート課題最終問題に使用)

(35)

フィンガー数(M)による並列数変更

レポートの課題

電源

M=6

M=6

M の変更によりインバータの

並列数を変更可能

(36)

数値の書式

36

数値+接尾辞で記述が可能

1f = 1e-15

1p = 1e-12

1n = 1e-9

1u = 1e-6

1m = 1e-3

1k = 1e+3

1Meg = 1e+6

マイクロ (u, 1e-6)と

メガ(Meg, 1e+6)に注意

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

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

Rload 1 2 10k

(37)

信号源の作り方

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

折れ線 (PWL; Piecewise Linear)

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

(t1, v1) (t2, v2) (t3, v3) (t4, v4) (t5, v5) (t6, v6) (t7, v7)

※ pulse を使ってもよい

(38)

入力波形の設定

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

PWLを選択

(39)

SPICEの入力

素子の接続関係 回路図を書く モデルパラメータ (モデルカード) 回路が非線形素子を 含む場合,その特性は 素子の種類に応じた パラメータで表現する 解析条件 オプションなど 電圧や周波数の範囲 何を出力するか etc.

(40)

モデルパラメータ

40

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

非線形素子の特性を記述する方程式のパラメータ

2

ds

th gs ox ds

1

2

1

V

V

V

L

W

C

I

m

例えば MOS飽和領域の電流

μ,Cox,λ はデバイス依存のパラメータ

→ モデルパラメータとして与える

モデルパラメータ (MOS)

.MODEL modelname type LEVEL=…

modelname:モデルの名前.MOSの素子記述内で指定する

type:MOSの場合は NMOS / PMOS

(41)

モデルの読み込み (1)

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

ツールバーの SPICE Directive

.lib “PATH¥filename” を入力

ドット (ピリオド)を 忘れないように注意 ※先頭のドットはネットリストをテキストで入力していた頃の名残

(42)

モデルの読み込み (2)

42

ツールバーの SPICE Directive

モデルファイルの中身をそのまま

貼ってもOK

(43)

間違えやすい点

読み込んだファイルのモデル名と

回路図の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

(44)

SPICEの入力

44 素子の接続関係 回路図を書く モデルパラメータ (モデルカード) 回路が非線形素子を 含む場合,その特性は 素子の種類に応じた パラメータで表現する 解析条件 オプションなど 電圧や周波数の範囲 何を出力するか etc.

(45)

解析条件の設定

解析条件の設定 (過渡解析)

.tran step end

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

どういう値に設定すればよいかは回路によって変わる

(46)

解析条件の設定

46

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

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

もしくは,

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

SPICE Directive ボタン ここに直接 .tran文を入力

(47)

完成図

(48)

便利機能

(49)

サブサーキット(今回は使用しない)

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

ができる

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

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

(50)

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

50 Label Net ピン名 Typeを選ぶ Input/Output/Bidirectional

まず回路図を書く

端子にしたいノードにピンを置く

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

(51)

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

シンボル(サブサーキットの回路記号)を作る

1.File → New Symbol でシンボル編集画面を開く

2.Draw → Line,Circleなどを使って記号を書く(形は何でもよい)

3.Edit → Add Pin/Port でピンを作成

ピンは全て回路図で配置したピンと同じ名前にすること

ピン名 シンボルの例

4.Save as でシンボルを保存

サブサーキット回路図と同じフォルダに同じ名前で保存すること

例) 回路図 inv-sub.asc / シンボル inv-sub.asy

(52)

サブサーキットの使い方

52

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

Component Top Directory を回路図・シンボルを 保存したフォルダに変える 作成したシンボル 保存したファイル名 配置した後は通常のコンポーネントと同じく右クリックで内容確認可能

(53)

.measure による自動計測

解析結果から指定した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 を上から下に横切った時刻」

(54)

.measure の例

54 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

想定外のところでトリガがかかったり

ターゲットにひっかかったりするので

(55)

.measure による測定

.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

(56)

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

エラーが出る場合

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

モデル名の間違いに注意

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

つなぎ忘れ

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

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

解析条件が正しいか確認

56

(57)

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

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

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

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

数字の入力間違い

容量の桁を間違えやすい

MOSのAD, AS, PD, PSの桁も間違えやすい

– PD/PSは 1mmオーダー,AD/ASは mm

2

,つまり1e-12オーダー

– そもそもAD/AS/PD/PSを記述しない(=0)でもシミュレーションは

動くが,遅延時間が異常に小さくなる

(58)

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

58

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

シミュレーションでは

「結果は出るがその結果に意味はない」ことが起こる

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

実際やると当然壊れる

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

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

シミュレーション:

出力も Vdd/2 で安定する(ことがある)

実際

わずかなノイズやp/nのアンバランスで

0 か Vdd のどちらかで安定

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

(59)

LTspice の使い方

LTspice : Linear Technology が配布している

SPICE

http://www.linear-tech.co.jp/designtools/software/

spice3 に改良を加えたもの

Windowsで動く

その他利用可能なSPICE

ngspice (Next Generation SPICE)

(60)

情報源

60

小野寺研 集積回路工学特論のページ

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/

NGSPICE

(61)

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

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

回路図をテキストで記述

実例はサンプルのネットリスト

(inv_example.cir)を参照

(62)

回路図の記述方法

62

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

element1 element3 elemen t2 element4 node1 node2 node3 node4 注1:素子には方向があるものがある (電圧源,電流源など) 注2:素子は3個以上の端子をもつことがある (トランジスタはD, G, S, B の4端子素子)

element1 node1 node3 element2 node1 node2 element3 node3 node4

element4 node2 node3 node4 これをテキストで書くと・・・

(63)

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

Xname node1 node2 … nodeN value PARAMETERS

記述の基本構造

素子の種類を示す アルファベット1文字 例: R → 抵抗 C→ キャパシタ V → 電圧源 M → トランジスタ 素子の名前 英数字からなる 文字列 素子の種類が 違えば重複可 例: Rin 1 2 50 Rin 2 3 50 Rin 1 2 50 Cin 2 3 100p 接続されたノード 数は素子によって 決まっている ノード名は 英数字文字列 ただしノード”0”は グラウンド 素子の値 抵抗なら抵抗値 電圧源なら電圧 値がないものもある (例:トランジスタ) NG OK 補助パラメータ トランジスタの サイズなど 必要に応じて指定 ※記述は1行に書く.複数行にわたる場合は2行目以降の先頭に “+” をつける

(64)

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

64

抵抗

Rname node+ node- value

キャパシタ

Cname node+ node- value

電圧源

Vname node+ node- value

電流源

Iname node+ node- value

電圧源,電流源には方向があることに注意

電圧源は node- が電圧の基準点

電流源は node- から node+ に向かって電流が流れる

抵抗,容量には方向はない

(65)

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

解析条件の設定 (過渡解析)

.tran step end

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

どういう値に設定すればよいかは回路によって変わる

自分の回路にとって適切な値がどの程度かよく考えること

解析結果の出力(過渡解析)

.print tran V(node1) V(node2) …

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

ネットリストの記述終了

.end

(66)

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

66

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

見たい波形を選択

ここで選択できるのは ネットリストの .print で

指定したノードだけなので注意

(67)

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

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

なければならない

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

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

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

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

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

(68)

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

68

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

サブサーキットの定義

.subckt name node1 node2 …

* circuit description

.ends

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

サブサーキットを使う

(69)

サブサーキットの例

*inv

.tran 0.05n 4n

.print tran v(3)

Vdd 1 0 5V

Vin 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 5V

Vin 2 0 pwl 0 5V …

Xinv 2 3 1 0 INV

Cout 3 0 0.2p

.subckt inv in out vdd vss

Mxp out in vdd vdd CMOSP L=…

Mxn out in vss vss CMOSN L=…

.ends

.MODEL CMOSP PMOS …

参照

Outline

関連したドキュメント

のピークは水分子の二つの水素に帰属できる.温度が上が ると水分子の 180° フリップに伴う水素のサイト間の交換

の変化は空間的に滑らかである」という仮定に基づいて おり,任意の画素と隣接する画素のフローの差分が小さ くなるまで推定を何回も繰り返す必要がある

その産生はアルドステロン合成酵素(酵素遺伝 子CYP11B2)により調節されている.CYP11B2

(5) 子世帯 小学生以下の子ども(胎児を含む。)とその親を含む世帯員で構成され る世帯のことをいう。. (6) 親世帯

ques are usufu1 to reveal the micromorphology, texture, growing processes, crystalinity, chemical bond and the distribution of carbon materials.. In this article usefu1

線遷移をおこすだけでなく、中性子を一つ放出する場合がある。この中性子が遅発中性子で ある。励起状態の Kr-87

4)線大地間 TNR が機器ケースにアースされている場合は、A に漏電遮断器を使用するか又は、C に TNR

接続対象計画差対応補給電力量は,30分ごとの接続対象電力量がその 30分における接続対象計画電力量を上回る場合に,30分ごとに,次の式