P P SPICE SPICEベースのCADとしては、 集積回路工学 SPICE3 無償 UC Berkeley校(オリジナル) ngspice 無償 gEDA PSPICE 有償 Cadence H-SPICE 有償 Synopsys 等がある(他にもいろいろある)。 11.回路シミュレーション(II) 本講義では、無償で利用できる ngspice を用いる(電算演習室にインストール済み)。 1 3 P P 利用できる素子(抜粋) Rxx N1 N2 抵抗値 受動素子 R C L 抵抗 コンデンサ インダクタンス N1:+ノード N2:-ノード 抵抗値(Ω) その他にも、 バイポーラトランジスタ 相互インダクタンス 伝送線 などの素子を利用できる。 能動素子 D Q M Cxx N1 N2 静電容量 N1:+ノード N2:-ノード 静電容量(F) ダイオード 接合トランジスタ MOSFET Lxx N1 N2 インダクタンス値 N1:+ノード N2:-ノード インダクタンス値(H) 独立電源 V I 抵抗、コンデンサ、インダクタンス 電圧源 電流源 13 P P MOSFET Mxx D G S B MODEL L=? W=? 14 MOSFETのモデルファイル トランジスタをモデル化した式に、試験用に 作ったトランジスタ(TEG; Test Element Group)を用いて実測値でパラメータを決める D:ドレイン 通常のデジタル回路であれば、 PMOSの場合はVDD, NMOSの G:ゲート 場合はVSS(0V)にすればよい。 S:ソース B:サブストレート(基板) MODEL:モデル名 MOSFETのモデル定義は非常に L:ゲート長 複雑で、かつ多数のモデル (BSIM1, BSIM2, BSIM3, HW:ゲート幅 TSCM 0.25umのモデルファイル(一部) .MODEL NMOS NMOS ( LEVEL = 3 + TOX = 5.7E-9 NSUB = 1E17 GAMMA = 0.4317311 + PHI = 0.7 VTO = 0.4238252 DELTA = 0 : : : + CJSW = 5.341337E-10 MJSW = 0.5 ) .MODEL モデル名 NMOS/PMOS ( .MODEL PMOS PMOS ( LEVEL = 3 + TOX = 5.7E-9 + NSUB = 1E17 GAMMA = 0.6348369 パラメータ1=値1 パラメータ2=値2 + PHI = 0.7 VTO = -0.5536085 DELTA = 0 : : :+ :: + CJSW = 3.625544E-10 MJSW = 0.5 ) +) SPICE等)がある。 通常は半導体製造会社からモデル ファイルを提供してもらえる(後述)。 15 16 1 P P モデルパラメータ(BSIM3の一部抜粋) ファイルの読み込み パラメータ名 説明 パラメータ名 説明 TOX ゲート酸化膜厚 XJ S/D接合深さ GAMMA1 MOS界面基板効果係数 GAMMA2 バルク内基板効果係数 NCH チャネルドーピング濃度 NSUB 基板ドーピング濃度 XT チャネルドーピング深さ VBX XTに於ける基板電圧 *** INV *** VTH0 閾値電圧 VFB フラットバンド電圧 K1 基板効果一次係数 K2 基板効果二次係数 K3 狭チャネル効果係数 K3B K3の基板効果係数 W0 狭チャネル効果 DLC ゲート容量ゲート長オフセット DWC ゲート容量ゲート幅オフセット CLC 短チャネルモデル用定数 include tsmc025.mdl M1 VDD A Y VDD PMOS L=0.25u W=1.0u M2 Y A VSS VSS NMOS L=0.25u W=2.0u CLE 短チャネルモデル用指数 CF フリンジ容量/単位長 UTE 移動度温度指数 EM 飽和電界 AF フリッカ雑音指数 EF フリッカ雑音周波数指数 モデルの定義ファイルはSPICEのソースコー ドに埋め込んでもよいが、見難くなるので別 ファイルにして読み込む : : 17 P 18 P 電圧源 Vxx N1 N2 電圧値 N1:+ノード N2:-ノード 電圧値 NEW 直流解析(DC解析) .DC 電圧源/電流源名 開始値 終了値 増分 内側の括弧はなくてもよい 例) PWL (0ns 0V 10ns 0V + 11ns 3.3V …) 過渡解析 10ns 11ns 20ns 21ns NEW 結果表示 .PRINT V(ノード名), I(素子名) 電圧表示にはノード名、電流表示には素子名を指 定する。「V()」は省略化。 3.3V 0ns 前回使用 .TRAN 表示間隔 終了時間 DC 5V PWL ((0ns 0V) (10ns 0V) (11ns 3.3V) + (20ns 3.3V) (21ns 0V) (30ns 0V)) 0V 解析コマンド グラフ化 30ns .PLOT V(ノード名), I(素子名) 19 P P 電源とグラウンド 電源、グラウンドは分かりやすいようにVDD, VSSという名前を用いることが多い。 サブサーキット 回路が大きくなるとフラットな設計が困難 プログラミング言語でいうスパゲッティ構造 機能ごとに関数化(サブサーキット化)する しかし .SUBCKT モジュール名 入出力 … *** INV1 *** .SUBCKT INV1 VDD VSS A Y M1 Y A VDD VDD PMOS L=0.25u W=3.0u M2 VSS A Y VSS NMOS L=0.25u W=3.0u .ENDS サブサーキット定義の終了 SPICEでは基準電位として、ノード0(=グラウ ンド)が必須。 そこで 以下のように記述すると回路の可読性が高い VDD VDD VSS 5V VSS VSS 0 0V 21 X0 VDD VSS VDD OUT1 INV1 X1 VDD VSS VSS OUT2 INV1 V0 VDD VSS 3.3V V1 VSS 0 0V .END VDDという名前の電源で、 VDD-VSS間は5V VSSという名前の電源で、 VSS-0間は0V(ショート) 23 サブサーキットの呼び出し Xxx 入出力 … モジュール名 24 2 P P グローバルノード VDDやVSSは回路全体で必要 サブサーキットにVDDやVSSを接続するのは 面倒 グローバルノードの使用例 *** INV1 *** .GLOBAL VDD VSS .SUBCKT INV1 VDD VSS A Y *** INV1 *** L=0.25u W=3.0u M1 Y A VDD VDD PMOS VDDL=0.25u VSS M2 VSS A .GLOBAL Y VSS NMOS W=3.0u .SUBCKT INV1 A Y .ENDS M1 Y A VDD VDD PMOS L=0.25u W=3.0u M2 VDD VSS OUT1 A Y VSS NMOS L=0.25u W=3.0u X0 VDD VSS INV1 .ENDS X1 VDD VSS OUT2 INV1 ⇒C言語でいうグローバル変数に相当 回路全体で使用するノードは、 .global ノード名 … で定義する。 V0 VDD VSS 3.3V X0 VDD OUT1 INV1 V1 VSS 0 0V X1 OUT2 INV1 .END V0 VDD VSS 3.3V V1 VSS 0 0V .END 25 P 26 P 例題 NANDをサブサーキットと して設計せよ。ただし、 PMOSはL=0.25um, W=2.0um、NMOSは L=0.25um, W=1.0um で、トランジスタのモデル 名はそれぞれP, Nとする。 ngspiceの実行方法 端末ソフトから、 ngspice SPICEネットリストのファイル名 と入力する。 B A シミュレーション Y プロンプト(ngspice 1 ->)が表示されたら、 run と入力する。 A B グラフ表示 シミュレーション後、 plot V(ノード1), V(ノード2), V(ノード3) … という具合に表示したいノードを指定する。 27 P P 過渡解析(例題) 下図左のインバータの入力端(A)に下図右の ような電圧を印加した時の過渡応答を解析せ よ(ただし、トランジスタのモデルには tsmc025.mdlを使用すること)。 VDD(1.8V) A 31 1.1ns 過渡解析(ネットリスト) VDD(1.8V) A L=0.25 W=2.0 Y L=0.25 W=2.0 2.1ns 1.8V L=0.25 本講義のWEBページから W=2.0 ダウンロード可能 0V Y 0ns 1ns 2ns 3ns L=0.25 0.1pF 入力信号(A) W=2.0 ~ MOSFETの定義~ Mxx ドレイン ゲート ソース 基板 MODEL L=? W=? *** inv.cir *** .GLOBAL VDD VSS .SUBCKT INV A Y M1 Y A VDD VDD PMOS L=0.25u W=2.0u M2 VSS A Y VSS NMOS L=0.25u W=2.0u .ENDS 32 33 3 P P 過渡解析(シミュレーション) 過渡解析(実行結果) 先ほどの回路に電源、負荷容量(0.1pF)を追 加し、シミュレーションする。 インバータのネットリスト(inv.cir)を読み込む *** test.cir *** .INCLUDE inv.cir トランジスタのモデルファイル .INCLUDE tsmc025.mdl (tsmc025.mdl)を読み込む X1 A Y INV 負荷 C1 Y VSS 0.1pF V0 VDD VSS 1.8V 電圧源を使いAに入力信号を発生させる V1 VSS 0 0V V2 A VSS PWL(0ns 0v 1ns 0v 1.1ns 1.8v 2ns 1.8v + 2.1ns 0v 3ns 0v) .TRAN 1ps 3ns 過渡解析を実行 .END % ngspice test.cir Circuit: *** test.cir *** ngspice 1 -> run Doing analysis at TEMP = 300.150 and TNOM = 300.150 ngspice 2 -> plot V(A), V(Y) ngspice 3 -> 34 P 35 P 過渡解析(数値の読み取り) 過渡解析(数値の読み取り) 黄線の範囲を右 ボタンでドラッグ すると… そこで、プロットするときに、通常の plot V(A), V(Y) ではなく、 plot V(A), V(Y) , VDD*0.1, VDD*0.9 と入力する。 VDD*0.1⇒ グラフのYとVDD*0.1の交点を左クリックすると、 端末にその点の座標が表示される グラフにVDDの10%、 90%の線が追加される % ngspice test.cir ngspice 1 -> run ngspice 2 -> plot V(A), V(Y), VDD*0.1, VDD*0.9 x0 = 1.14851e-09, y0 = 0.177419 37 P P 過渡解析(数値の読み取り) P2-P1が立下 り時間、 P4-P3が立上 り時間 P1: P2: P3: P4: 立下り:0.07ns 立上り:0.19ns x0 x0 x0 x0 P1 = = = = 1.07778e-09, 1.14815e-09, 2.11852e-09, 2.31111e-09, P2 = = = = グラフの保存/印刷方法 ngspiceの“hardcopy”ボタンは効きませ ん! そこで、下記の手順に 従い、Postscript ファイルを生成し、 印刷してください。 P4 y0 y0 y0 y0 38 1.61846 0.178462 0.172308 1.61231 runを実行した後、 xgraph tmp V(A), V(Y), VDD*0.1, VDD*0.9 と入力する。 P3 0.12nsも違う! 39 40 4 P P グラフの保存/印刷方法 下図左のような波形ウィンドウが表示されるので、 “Hdcpy”ボタンをクリックする。 下図右のウィンドウが出たら、Output deviceを “Postscript”、Dispositionを“To File”にして“OK”をク リック。 グラフの保存/印刷方法 この操作により、カレントディレクトリに “xgraph.ps”というファイルが生成される。 印刷する場合 端末ソフトから lpr xgraph.ps と打ち込む。 41 P 42 P 課題1(1/2) TSMC0.25umプロセスを用いて、INV(NOT)回路をサ ブサーキットとして設計し、更にそのサブサーキットを利用 してf=5の負荷を付けた場合の動作を確認せよ。 ただし、NMOSのサイズはL=0.25um, W=1.0umとし、 PMOSのサイズは立上がり、立下り時間が揃うように調 整せよ。また、電源電圧は1.8Vとする。 レポート課題 次に示す課題を解いてレポートにまとめ、 7月30日(水)の講義開始時に提出すること。 この講義に対する質問、ご意見、クレーム、コメント 等ありましたら、レポートの最後に書いてください(もち ろん、成績評価とは無関係です)。できる限り講義に 反映、あるいはWEBページにて回答します。 A B f=5の負荷 (自分と同じ入力 容量の負荷が5個) C 最終段のINVの 出力は開放 (何も繋がない) 計測対象 43 45 P P 課題1(2/2) 設計したINV回路について、f=5の場合の立上り時間、 立下り時間、最大遅延時間を計測して、その値を示せ。レ ポートにはSPICEのネットリスト(サブサーキットのみでよ い。課題2、3も同様)、SPICEでシミュレーションした結果 の波形図(ノードA, B, C)を掲載すること。 課題1(ヒント) *** Test fixture for problem 1 *** .global VDD VSS .include tsmc025.mdl .include inv.cir VA A 0 PWL(0ns 0v 10ns 0v 10.1ns 1.8v 20.0ns + 1.8v 20.1ns 0v) VDD VDD VSS 1.8V VSS VSS 0 0V .tran 50ps 30ns .END A 0 46 10 20 30 47 5 P P 課題1の補足 課題2 Q,Q付のTGMS D-FFをサブサーキットとして設計し、下 図のような回路を作成した上で、50MHzのクロックを与え た時の動作をSPICEを用いてシミュレーションせよ。レ ポートには、以下の事項を書くこと。 1. SPICEで出力した波形図(CLK, Q1, Q2) 2. TGMS DFFのトランジスタレベルの回路図 3. 設計したTGMS D-FFのSPICEネットリスト 4. 結果の考察 設計する回路によっては、トランジスタのL, Wを慎重に調 整しないと動かないので注意すること。 波形図を出すとき、 plot V(A), V(B), V(C) とすると3本の信号線が重なって見辛くなる。 そこで、 plot V(A)+4, V(B)+2, V(C) として、各信号線の波形を上にずらす(A, Bに それぞれ4V, 2Vのオフセットを足す)ことで見 易くなる。 D 50MHz CLK C Q Q Q1 48 P Q C Q Q2 49 P TGMS D-FF D 課題2(ヒント) *** Test fixture for problem 2 *** .INCLUDE tsmc025.mdl .GLOBAL VDD VSS .include dff.cir * dff D CLK Q Q_ X1 Q1_ CLK Q1 Q1_ dff X2 Q2_ Q1 Q2 Q2_ dff V0 VDD VSS 1.8V V1 VSS 0 0V V2 CLK VSS DC 0V PWL ((0ns 0v) (0.1ns 0v) (10ns 0v) + (10.1ns 1.8v) (20ns 1.8v) (20.1ns 0v) (30ns 0v) + (30.1ns 1.8v) (40ns 1.8v) (40.1ns 0v) (50ns 0v) + (50.1ns 1.8v) (60ns 1.8v) (60.1ns 0v) (70ns 0v) + (70.1ns 1.8v) (80ns 1.8v) (80.1ns 0v) (90ns 0v) + (90.1ns 1.8v) (100ns 1.8v) (100.1ns 0v) (110ns 0v) + (110.1ns 1.8v) (120ns 1.8v) (120.1ns 0v) (130ns 0v) +) TGMS: Transmission-gate latch based master-slave flip-flop .TRAN 100ps 140ns .END 50 P 51 P 課題3 課題2で設計したD-FFを利用して、3bitのカウンターをサ ブサーキットとして設計せよ。また、適当なクロックを与え て、カウンターを一周以上させた場合のシミュレーションを せよ。 設計するカウンターは、入力としてクロック(CLK)を受け 取り、毎クロックの立ち上がりで3bitのカウンターを一つ インクリメントする。出力は、Y0, Y1, Y2で、Y2をMSB、 Y0をLSBとする。 レポートには、 1. SPICEで出力した波形図(CLK, Y0, Y1, Y2) 2. 回路のブロック図(NAND, NOR, NOT, AOI, D-FF 等の論理回路記号を用いて描く)。階層構造で! 3. 設計したカウンターのSPICEネットリスト 4. 結果の考察 を掲載すること。 課題3(ヒント) *** Test fixture for problem 3 *** .INCLUDE tsmc025.mdl .GLOBAL VDD VSS ** ↓必要に応じて各自で書く .include dff.cir .include ctr3.cir * ctr3 CLK Y0 Y1 Y2 X1 CLK Y0 Y1 Y2 CTR3 V0 VDD VSS 1.8V V1 VSS 0 0V V2 CLK VSS DC 0V PWL ((0ns 0v) (0.1ns 0v) (10ns 0v) + (10.1ns 1.8v) (20ns 1.8v) (20.1ns 0v) (30ns 0v) + (30.1ns 1.8v) (40ns 1.8v) (40.1ns 0v) (50ns 0v) + (50.1ns 1.8v) (60ns 1.8v) (60.1ns 0v) (70ns 0v) + (70.1ns 1.8v) (80ns 1.8v) (80.1ns 0v) (90ns 0v) + (90.1ns 1.8v) (100ns 1.8v) (100.1ns 0v) (110ns 0v) + (110.1ns 1.8v) (120ns 1.8v) (120.1ns 0v) (130ns 0v) + (130.1ns 1.8v) (140ns 1.8v) (140.1ns 0v) (150ns 0v) + (150.1ns 1.8v) (160ns 1.8v) (160.1ns 0v) (170ns 0v) + (170.1ns 1.8v) (180ns 1.8v) (180.1ns 0v) (190ns 0v) + (190.1ns 1.8v) (200ns 1.8v) +) .TRAN 100ps 220ns .END 52 53 6 P P (再掲)レポートの書き方(1/2) 特に指示がない限り、A4用紙を用いる 左上をホチキスで綴じる 最初のページに、 (再掲)レポートの書き方(2/2) 図表には通し番号、および題を付け、本分中 で必ず引用した上で説明する。 図題は下、表題は上。 例) ……の測定結果を図3に示す。図3より…… 講義名や課題名 作成日 氏名、学籍番号、必要であれば所属 を書く。 表1:各抵抗の測定結果 電流(A) ページ番号を付ける 回答だけでなく、課題内容を簡潔にまとめる 与えられた課題の順序に従って回答する 図1: NMOSトランジスタの 回路記号 電圧(V) R1 1.2 1.2 R2 2.3 11.3 プログラム(ソース)リストも同様 54 55 7
© Copyright 2024 ExpyDoc